datensatz ist array

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

  • datensatz ist array

    Hallo zusammen,

    also aus der Datenbank bekomme ich folgendes geliefert
    z.B.
    array("0" => array("element"=>"1","x"=>"100","y"=>"91","text"=>"ballon"),"1" => array("element"=>"2","x"=>"111","y"=>"156","text"=>"popcorn"));

    Die Daten stehen genau so auch in der Tabelle im Feld.

    Wie kann ich jetzt das als "reales" Array einer Variablen zu weisen.

    Aus der Datenbank lese ich es $dump = mysql_result($sqlResult, 0, 'array');

    Aber die Zuweisung das es die Eigenschaften eines Arrays hat klappt irgendwie nicht.

    Danke

    Sun

  • #2
    Wenn ich dich richtig verstanden habe, hast du das Array in der Datenbank stehen? Dann ist das wohl erstmal ein Fall für Normalisierung

    Kommentar


    • #3
      Re: datensatz ist array

      Original geschrieben von solius
      Die Daten stehen genau so auch in der Tabelle im Feld.
      Was hat denn das Attribut 'array' für einen Datentyp, bzw. wie bringst du da überhaupt einen Array rein?
      Gruss
      H2O

      Kommentar


      • #4
        Wahrscheinlich als Textfeld
        Btw: Einige Datenbanken unterstützen auch einfache Arrays!

        Kommentar


        • #5
          serialize

          Kommentar


          • #6
            Original geschrieben von TobiaZ
            serialize
            Das ist mir schon klar, nur stehen dann die Daten nicht
            genauso im Feld
            Gruss
            H2O

            Kommentar


            • #7
              eval
              (eval ist böse, und trotzdem muss man es verwenden... welcher Honk hat die Daten so in der Datenbank gespeichert?!...)

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                Original geschrieben von H2O
                Das ist mir schon klar, nur stehen dann die Daten nicht genauso im Feld
                Das wiederum ist mir klar. Aber wenn man s schon macht, dann sollte man es wenigstens halbwegs richtig machen!

                Kommentar


                • #9
                  Hallo zusammen,

                  sorry das ich so spät schreibe (Krankheit macht träge).
                  Die Daten bekomme ich schon so, ich weiss nicht was sich derjenige
                  gedacht hat oder warum er diese so in die db schreibt.

                  Das Feld ist text.

                  Ich muss damit leider leben.
                  Werde aber mal serialize und eval probieren.

                  Gebe aber nochmal Feedback ob es geklappt hat.

                  Danke

                  Kommentar


                  • #10
                    Hallo Irgendwie klappt garnichts
                    meine Gedanken und Kommentare mit --> im Quelltext eingeleitet
                    include("func.inc.php");

                    if(opendb() == true)
                    {
                    $sql = "select * from pos where id = '2'";
                    $sqlResult = mysql_query("$sql");
                    $elemente = mysql_result($sqlResult, 0, 'aArray');
                    echo $elemente."<br>";

                    -->
                    Ausgabe auf ddem Monitor
                    array("0" => array("element"=>"image0","x"=>"50","y"=>"50","text"=>"show0"),"1" => array("element"=>"image1","x"=>"103","y"=>"373","text"=>"show1"));

                    Quelltext firefox
                    array("0" => array("element"=>"image0","x"=>"50","y"=>"50","text"=>"show0"),"1" => array("element"=>"image1","x"=>"103","y"=>"373","text"=>"show1"));
                    <--
                    -->
                    Also hab ich mir nach etlichen Versuchen gedacht die " in ' umzuwandeln und das Semikolon am Ende zu entfernen
                    <--

                    $elemente = str_replace("\"", "'", $elemente);
                    $elemente = str_replace(");", ")", $elemente);
                    echo $elemente."<br>";

                    -->
                    Ausgabe auf ddem Monitor
                    array('0' => array('element'=>'image0','x'=>'50','y'=>'50','text'=>'show0'),'1' => array('element'=>'image1','x'=>'103','y'=>'373','text'=>'show1'))

                    Quelltext firefox
                    array('0' => array('element'=>'image0','x'=>'50','y'=>'50','text'=>'show0'),'1' => array('element'=>'image1','x'=>'103','y'=>'373','text'=>'show1'))
                    <--

                    eval ("\$elemente = \"$elemente\";");
                    -->
                    kein Array
                    <--

                    print_r($elemente);
                    }

                    <--
                    hab ich einfach mal das was auf dem Monitor ausgegeben wurde in in die Programmierumgebung kopiert,
                    um zu sehen ob es evtl. einen systaxfehler gibt, aber auch nicht, alles ok
                    -->
                    $test = array('0' => array('element'=>'image0','x'=>'50','y'=>'50','text'=>'show0'),'1' => array('element'=>'image0','x'=>'103','y'=>'373','text'=>'show1'));

                    wo ist mein Fehler

                    Danke

                    Kommentar


                    • #11
                      Ich hab nicht alles im Detail gelesen, deshalb kann ich dir nicht genau sagen, wo der Fehler ist. Aber die ganze Umwandelei kannst du dir sparen. Das folgende Fragment sollte funktionieren:
                      PHP-Code:
                      $sql "SELECT 
                                  aArray 
                              FROM 
                                  pos 
                              WHERE 
                                  id = 2"
                      ;
                      $sqlResult mysql_query($sql);
                      list(
                      $elemente) = mysql_fetch_row($sqlResult);
                      echo 
                      "$elemente<br />";
                      eval(
                      "\$db_array = " $elemente);

                      echo 
                      "<pre>";
                      var_dump($db_array);
                      echo 
                      "</pre>"
                      Gruss
                      H2O

                      Kommentar


                      • #12
                        Hallo Wasser

                        super, eine kleine Änderung noch gemacht und es funzt.
                        Irgendwie hab ich mir schon gedacht, da ich am Eval was falsch aufgebaut hab bin aber eben nicht drauf gekommen.

                        Vielen, vielen Dank

                        Kommentar

                        Lädt...
                        X