Daten richtig rein aber falsch wieder raus

  • Daten richtig rein aber falsch wieder raus

    Hallo, ich habe hier ein kleines Problemchen. Könnte mir da vielleicht einer weiterhelfen?
    Ich muss eine Datenbankabfrage in ein Array eintragen.

    Der betreffende Code schaut so aus:
    Aus der Funktion Read:

    Quellcode

    1. #Feld wird aus Datenbank geholt
    2. $users = self::$database->getField($this->name, "users");
    3. self::$database->setLog("read: $users", Gesamtabfrage); #Prüfung Gesamtfeld ergibt read: Username S0 10 S1 10 1:108:7 1 0 0 0 0 0 0 ... Gesamtabfrage 2007-04-13 23:03:20
    4. $users = (strlen($users) > 0 ? explode("\n", $users) : array());
    5. foreach($users as $u)
    6. {
    7. $u = explode("\t", $u);
    8. if(count($u) < 10) continue;
    9. #self::$database->setLog("read: $u[0]", username);
    10. self::$database->setLog("read: $u[1]", IDS); #Prüfung der IDs/Anzahl ergibt "S0 10 S1 10" was auch so sein soll
    11. #self::$database->setLog("read: $u[2]", start);
    12. #self::$database->setLog("read: $u[3]", faktor);
    13. $this->raw[1][$u[0]] = array(
    14. decode_item_list ($u[1]), #betreffende Stelle wo die Werte S0 10 S1 10 ins Array eingetragen werden
    15. $u[2],
    16. (float)$u[3],
    17. array(
    18. decode_ress_list($u[4]),
    19. decode_item_list($u[5]),
    20. (float)$u[6]
    21. ),
    22. array(
    23. decode_ress_list($u[7]),
    24. decode_item_list($u[8])
    25. ),
    26. (float)$u[9]
    27. );
    28. }
    Alles anzeigen


    Funktion decode_item_list aus der include.php (in Zusammenspiel mit Eintrag ins Array):

    Quellcode

    1. function decode_item_list($encoded)
    2. {
    3. $list = array();
    4. $encoded_sp = (strlen($encoded) > 0 ? explode(" ", $encoded) : array());
    5. for($i=0; $i<count($encoded_sp); $i+=2)
    6. $list[$encoded_sp[$i]] = (float)$encoded_sp[++$i];
    7. return $list;
    8. }


    Wenn ich nun versuche, das betreffende Array wie folgt auszulesen,

    Quellcode

    1. $array = $this->raw[1][$u[0]][0];
    2. foreach($array as $inhalt=>$info)
    3. {
    4. self::$database->setLog("read: $inhalt", inhalt);
    5. self::$database->setLog("read: $info", info);
    6. }


    bekomme ich folgendes als Ausgabe zurück:
    4630 read: S0 inhalt
    4631 read: 10 info
    4632 read: 10 inhalt
    4633 read: 0 info


    Die erste ID wird also in Bezeichnung S0 richtig ausgelesen und die Anzahl von 10 auch.
    Danach wirft die Abfrage immer 10 und 0 aus, wo eigendlich S1 und 10 rauskommen sollte.
    Es liegt also der Gedanke nahe, dass beim Eintrag ins Array irgendwas schiefgeht, da die Werte ja vorher einwandfrei als $u[1] vorliegen.
    Insgesamt werden nachher bis zu 15 IDs inklusive Anzahl ins Array eingetragen, aber es klappt noch nicht mal mit 2.;-)

    Thx


    //EDIT: BBCODED by d0nut
  • Schön. Ich wollte, konnte dir aber leider nicht helfen.

    Vielleicht wäre es aber dennoch möglich gewesen, wenn du mir deinen Post etwas einfacher gemacht hättest.

    Fürs nächste mal:

    Versuch mal BBCode zu verwenden. Einfach entsprechenden Code makieren und SyntaxHighlighting auswählen. ;)