• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] Steam-Avatar auslesen

Herakles

Neues Mitglied
Guten Tag,
ich arbeite an einer Webseite, die Daten aus einer Datenbank ausliest. Die integrierte Tabelle sieht ungefähr wie folgt aus:Tabelle.png
Nun versuche ich die Profilbilder der einzelnen Personen zu bekommen. Wie gehe ich da am besten vor? Bisher hatte ich als Resultat eine Seite, die eine viel zu lange Landezeit hatte.

Bisheriger Ansatz:
PHP:
        $key = "...";

        $contentFromUrl = file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={$key}&steamids={$identifier}");
        $decode = json_decode($contentFromUrl);

                                DANN: $decode->response->players[0]->avatarfull;

Ungefähre Html Struktur in .php-File:
HTML:
[...]
                $datarecords_personlist = mysqli_query($con, "SELECT 1, 2, 3 FROM 123 WHERE 1 = '$Suchergebnis' OR 2 = '$Suchergebnis' OR 3 = '$Suchergebnis'");
                while (list($1, $2, $3) = mysqli_fetch_array($datarecords_personlist)){
                 echo "
                 <tr>
                  <td><img src='.....'></td>
                  <td> $identifier </td>
[...]

Danke für all Eure Beiträge
 
Zuletzt bearbeitet:
Werbung:
Kannst du das genauer erklären?
Ich sehe keine Links zu Bildern und auch kein Hinweiß das du Links von Bildern in der Db stehen hast.
Sind die Bilder irgendwo Online oder auf deinen Server ?
 
Wenn ich schon "ungefähr" lese, dann bin ich schon raus. Entweder du zeigst den richtigen Quellcode oder wir lassen es.
 
Werbung:
Wenn du für jede Person einzeln das Profilbild per API ausliest hast du natürlich eine lange Ladezeit. Das ist jedes Mal ein Request, der dauert halt etwas. Je mehr Personen desto länger dauerts.
 
Ich versuche - wie jonas3344 richtig vermutete - für jeden Nutzer aus der Datenbank das Profilbild per API auszulesen. Dazu nutze ich einen Werte der Datenbank, der die SteamID beinhaltet. Ich habe also den oben aufgeführten Code verwendet. Ich frage lediglich nach anderen Ansätzen, die eventuell die Ladezeit reduzieren. Mein Ansatz resultierte in einer viel zu langen Ladezeit, funktioneiert jedoch. Der Code sollte deshalb eher uninteressant sein. Außerdem wäre das etwas zu viel für diesen Bereich.

Ich danke erneut für Eure Hilfe.
 
Zuletzt bearbeitet:
1. Gucken ob die Steamapi evtl. erlaubt mehrere User gleichzeitig abzufragen
2. Serverseitig nur eine gewisse Anzahl User darstellen => Pagination
3. Die Seite aufbauen und die Daten (vor allem die Profilbilder) per JavaScript nachladen.
 
Werbung:
Danke für die hilfreichen Ansätze jonas3344. Auch den anderen bin ich für ihre Beiträge dankbar.
Wie liese sich letzteres umsetzen. Hättest du da einen Link mit einem Beispiel für mich? Ich bin in JavaScript leider noch nicht ganz so gut aufgestellt.
 
Zuletzt bearbeitet:
Wenn du in JavaScript nicht ganz so gut aufgstellt bist dürfte das schwierig werden.
Du müsstest beim Start der Seite ein Script starten, dass alle IDs durchgeht und dann je einen AJAX-Request an ein Script schickt welches das Profilbild abholt und Dir zurückschickt. Dann kannst du das einblenden.
Da JavaScript asynchron ist kannst du da praktisch gleichzeitig alle Requests abschicken. Kann aber natürlich sein, dass die Steam-API Dich dann blockt weil das zu viele Anfragen in kurzer Zeit sind.

Ich würde Dir zu 2. raten, bau eine Pagination ein.
 
Zurück
Oben