[PHP] elitepvpers JSON API Code in Tabelle umwandeln

09/04/2012 18:56 flickz.#1
In diesem Tutorial möchte ich euch zeigen wie ihr [Only registered and activated users can see links. Click Here To Register...] in [Only registered and activated users can see links. Click Here To Register...] umwandelt.

Was brauchen wir?
  • Einen Editor um das Script zu bearbeiten (ich empfehle Notepad++)
  • Ein Secretword für die Blackmarket API das ihr [Only registered and activated users can see links. Click Here To Register...] festlegen könnt

Als erstes brauchen wir unseren Link für die API den man krigt indem man in der Navigation auf "The Black Market" klickt und unten Rechts dann auf "Alle Transaktionen (JSON)". Der Link der oben in der Adressleise steht, also da wo man den Link der Seite eingibt die man aufrufen will, muss nun kopiert werden.
Der Link müsste so aussehen:
http://www.elitepvpers.com/theblackmarket/api/transactions.php?u=USER_ID&type=all&secretword=SEC RET_WORD

Jetzt erstellen wir eine neue PHP-Datei.
Wie immer muss man natürlich erstmal die PHP-Tags in die Datei schreiben:
PHP Code:
<?php

?>
Jetzt erstellen wir eine neue Variable, diese füllen wir mit dem JSON Code von der API Seite. Damit der JSON Code immer aktuell ist lesen wir ihn aus der API Seite mit der Funktion file_get_contents() aus.
Also z.B. so:
PHP Code:
<?php

$json_from_epvp 
file_get_contents("http://www.elitepvpers.com/theblackmarket/api/transactions.php?u=USER_ID&type=all&secretword=SECRET_WORD");

?>
Da wir damit immernoch nichts anfangen können wandeln wir das ganze per json_decode() in einen Array um.
Also so:
PHP Code:
<?php

$json_from_epvp 
file_get_contents("http://www.elitepvpers.com/theblackmarket/api/transactions.php?u=USER_ID&type=all&secretword=SECRET_WORD");
$json json_decode($json_from_epvptrue);

?>
Nun haben wir einen Array in dem die ganzen Transaktionen enthalten sind.
Die zu letzt ausgeführte Transaktion ist immer "0".
Also so:
PHP Code:
$json[0
Jetzt können wir uns über diese Transaktion Informationen ausgeben lassen oder in eine andere Variabel schreiben.
Die Informationen sind im JSON Script, mit nem Komma getrennt von anderen, immer so angegeben:
[Only registered and activated users can see links. Click Here To Register...]
Also im Format {"name der information":"information", "name der zweiten information":"information", usw...}
Aus unserem Array können wir Daten z.B. so auslesen:
PHP Code:
echo $json[0]["name der information"]; 
Also wenn wir nun in den Code
PHP Code:
echo $json[0]["eg_transactionid"]; 
schreiben wird uns später wenn wir das Script aufrufen die ID der elitegold Transaktion ausgegeben.
Das können wir mit allen Informationen machen.
Eine Liste davon:
eg_transactionid = Transaktions ID
eg_from = Die ID des Users der das elitegold gesendet hat
eg_fromusername = Der Name vom User der das elitegold gesendet hat
eg_to = Zu welcher User ID das elitegold gesendet wurde
eg_tousername = Username des Empfängers
amount = Anzahl des elitegolds das gesendet wurde
note = Die Notiz die beim versenden des elitegolds angegeben wurde

Um den ganzen Array zu durchlaufen und um alle Transaktionen + Daten wie ID usw. in eine Tabelle zu packen arbeiten wir jetzt mit einer Whileschleife.
Erstmal müssen wir die Länge des Arrays bzw. die Anzahl der Transaktionen herrausfinden.
Das machen wir per count() und fügen das in eine Variable namens "$num" ein, das sieht dann so aus:
PHP Code:
$num count($json);
$i 0
Die Variable "$i" ist dafür damit die Whileschleife auch irgendwann ein Ende hat bzw. damit man die Zahl im Array der aktuellen Transaktion weiß. Also später wird es $json[$i] heißen und nicht mehr $json[0].

Euer Code müsste bis jetzt ungefähr so aussehen:
PHP Code:
<?php

$json_from_epvp 
file_get_contents("http://www.elitepvpers.com/theblackmarket/api/transactions.php?u=USER_ID&type=all&secretword=SECRET_WORD");
$json json_decode($json_from_epvptrue);
$num count($json);
$i 0;

?>
Jetzt machen wir die Whileschleife:
PHP Code:
<?php

$json_from_epvp 
file_get_contents("http://www.elitepvpers.com/theblackmarket/api/transactions.php?u=USER_ID&type=all&secretword=SECRET_WORD");
$json json_decode($json_from_epvptrue);
$num count($json);
$i 0;

echo 
"<table border=\"1\">"//Da wir eine Tabelle ausgeben wollen müssen wir natürlich den <table> HTML-Tag ausgeben
echo "<tr><th>Transaktions ID</th><th>e*gold gesendet an</th><th>egold gesendet von</th><th>Anzahl</th><th>Notiz/Kommentar</th></tr>"//Die Spaltennamen der Tabelle
while($i != $num) {
$tID $json[$i]["eg_transactionid"]; //Transaktions ID
$tFrom $json[$i]["eg_fromusername"]; //Absender
$tTo $json[$i]["eg_tousername"]; //Empfänger
$tAmount $json[$i]["amount"]; //elitegold Anzahl
$tNote $json[$i]["note"]; //Notiz
//Die einzelnen Information in die Spalten füllen:
echo "<tr>"//Neue Reihe in der Tabelle
echo "<td>".$tID."</td>"//ID in die erste Spalte
echo "<td>".$tTo."</td>"//Empfänger in die zweite
echo "<td>".$tFrom."</td>"//Absender in die dritte
echo "<td>".$tAmount."</td>"//Die elitegold Anzahl in die vierte
echo "<td>".$tNote."</td>"//Und die Notiz in die fünfte
echo "</tr>";
$i++; //Die Variable "$i" wird um 1 erhöht
}
echo 
"</table>";

?>
Wenn ihr alles richtig gemacht habt müsstet ihr nun eine Tabelle mit allen Transaktion haben + Infos wie z.B. die Notiz und Absender.

Mfg,
flickz

Sorry falls es so ein Tutorial schon gibt, habe per Suchfunktion aber keins gefunden und ich hoffe ihr könnt mit diesem Tutorial was anfangen.
09/04/2012 19:37 epiTR#2
Nettes Tutorial für Leute die nicht wirklich PHP können.
Wieso verwendest du kein foreach? Das spart einige Zeilen Code.

PHP Code:
foreach($json as $cur) {
    echo 
$cur['eg_fromusername'];
    
// ...
}// foreach 
09/04/2012 19:38 flickz.#3
Ich machs lieber so^^