array auslesen in verb. mit unserialize()

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • array auslesen in verb. mit unserialize()

    Hallo,

    ich möchte ein array auslesen, welches aus der Datenbank kommt und mit unserialize() umgewandelt wird. unserialize() ist kein Problem. Allerdings erhalte ich beim Durchlaufen des arrays 3x dieselben Werte zurück. Mein Code:
    PHP-Code:
    if (!($var['aufsaetze']==""))
                        {
                        
    $t unserialize($var[aufsaetze]);
                        
    //  echo ($var[aufsaetze]);
                           
    $count count($t);
                        for(
    $i=0$i $count$i++) 
                            {
                            switch (
    print_r($t))
                            {
                                case 
    "flagge_10_s":
                                    
    $flaggeid=10;
                                    break;
                                case 
    "flagge_17_s":
                                    
    $flaggeid=17;
                                    break;
                                case 
    "flagge_18_s":
                                    
    $flaggeid=18;
                                    break;    
                                }
                            echo 
    "<td width=\"40px\">";
                             
    print_r($t); 
                            
    //echo $flaggeid;
                             
    echo "</td>\n";
                             }
                        } 
    Die Ausgabe:

    Array ( [flagge_10_s] => 50 [flagge_17_s] => 20 [flagge_18_s] => 10 ) Array ( [flagge_10_s] => 50 [flagge_17_s] => 20 [flagge_18_s] => 10 ) Array ( [flagge_10_s] => 50 [flagge_17_s] => 20 [flagge_18_s] => 10 )

    Allerdings gibt es tatsächlich den Datenbankeintrag nur einmal in dem entsprechenden Feld (mit serialize() in die DB eingetragen - sieht also etwas anders aus in der DB):

    Auslesen sollte er also:

    Array ( [flagge_10_s] => 50 [flagge_17_s] => 20 [flagge_18_s] => 10 )

    Habt ihr eine Idee, woran es liegen kann? Vielen Dank für Eure Tipps. Gruß,

  • #2
    works as designed: In dem Array befinden sich 3 Einträge, Du gibst in der Schleife das komplette Array aus. Was soll da sonst bei rauskommen?
    Und über
    PHP-Code:
    switch (print_r($t)) 
    würde ich auch nochmal nachdenken.

    Kommentar


    • #3
      Hallo,

      o.k., ich habe noch nicht so die grossen Erfahrungen mit dem array-handling

      Mit
      PHP-Code:
      switch (print_r($t)) 
      möchte ich erreichen, dass der Titel des arrays ausgelesen wird, nicht der Wert. Wenn dieser Titel einem ganz bestimmten string entspricht, den ich abfrage, dann soll er eine Zahl in variable $flaggeid speichern... was ist die bessere Lösung zu print_r($t) in Zusammenhang mit der Abfrage im switch?

      print_r() kann ja schon der Fehler sein für meine 3-malige Ausgabe, die nur einmal ausgegeben werden soll und: im switch soll ja eigentlich gar nichts ausgegeben werden, nur gespeichert ind variable $flaggeid - o.k. hier hab ich wohl komplett n Brett vorm Kopf

      ich sollte also eine Lösung ohne print_r() im switch finden...

      Gruß,

      Kommentar


      • #4
        o.k., ich habe noch nicht so die grossen Erfahrungen mit dem array-handling
        Dann nimm Dir ein Tutorial vor. Für Anfänger eignet sich das von Peter Kropff.
        Du siehst doch, was print_r für eine Ausgabe erzeugt! Was veranlasst Dich jetzt zu der Annahme, dass Du damit den "Titel" (du meinst den Key des aktuellen Array-Elements) bekommst. Schlag doch erstmal print_r im Manual nach, dann sieht Du auch , dass print_r den Inhalt aus- und nicht zurückgibt.
        Du solltest Dich wirklich erstmal gründlich mit einem Tutorial beschäftigen.

        Kommentar

        Lädt...
        X