Hey,
mein Php-Skript hat i.wo bei der Umwandlung der MySql Daten in ein JsonObjekt einen Fehler.
Habe mir schon viele Tutorials angeschaut mit Php und Json, allerdings finde ich keins wo mal ein ObjectArray in ein Object gesteckt wird und dann umgewandelt wird in Json.
Als erstes wird ein Array erstellt :
Dann wird später folgender Code ausgeführt :
else if ($tag == 'getTraining') {
$spieler_id = $_POST['user_id'];
// Jetzt werden die Trainingseinheiten geladen (training_id,titel,datum,zeit,eingetragen,info,stauts) wird zurückgegeben
$trainresult = $db->getTraining($spieler_id);
if($trainresult != false){
//success wird auf 1 gesetzt -> Trainingseinheiten sind vorhanden usw.
$response["success"] = 1;
$trainstack = array();
// in dieser Schleife werden nacheinander Trainingsobjekte erstellt
while($train = mysql_fetch_array($result)){
$unit = new stdClass();
$unit =>training_id = $train["training_id"];
$unit =>titel = $train["titel"];
$unit =>date = $train["datum"];
$unit =>time = $train["zeit"];
$unit =>info = $train["info"];
$unit =>status = $train["status"];
$unit =>logged = $train["eingetragen"];
array_push($trainstack,unit);
}
$response["units"] = $trainstack;
echo json_encode($response);
Alles anzeigen
Mein JsonObejekt soll nachher so aussehen :
{
"tag":"getTraining",
"success":1,
"error":0,
"units":[
{"training_id : "1",
"titel" : "Atlethiktraining",...},
{"training_id : "2",
"titel" : "Joggen"},..]}
Ich bin in PHP noch sehr unsicher, habe ich mir die Tage erst zum ersten mal angeschaut.
Weiß nicht genau, ob ich da mit dem Array richtig umgehe.
Die SQL Anfrage stimmt auf jeden Fall, die hinter der Funktion getTraining() steckt und liefert mir auch die richtigen Daten bei manueller Abfrage.
Im Moment ist das Objeckt "units" immer leer, wenn es auf dem Android-Device ankommt.
Folgendes kommt an :
{"tag":"getTraining","success":1,"error":0,"units":[]}
Rest funktioniert.
Über eine kleinen Tipp würde ich mich sehr freuen
Grüße,
Wrigley
Update,
habe beim Zuweisen -> durch => ersetzt und bekomme jetzt gerade nach Auslesen des Http Requests einen leeren String zurück.
Hm, ich gucke mal schnell weiter.
Update 2,
Ich habe den Body der while - Schleife jetzt umgestellt mit folgendem Inhalt :
$trainstack[] = array("training_id"=>$train["training_id"],"titel"=>$train["titel"],"date"=>$train["datum"],"time"=>$train["zeit"],"info"=>$train["info"],"status"=>$train["status"],"logged"=>$train["eingetragen"]);
Nach der while-Schleife dann :
Allerdings bekomme ich auf dem Gerät wieder : {"tag":"getTraining","success":1,"error":0,"units":[]}