2-dimensionales Array aus Select ...

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

  • 2-dimensionales Array aus Select ...

    Hallo,

    ich möchte aus einer DB-query ein 2 - dimensionales Array der Form:

    Array (
    [0] =>
    Array ([name_feld1] =>22, [name_feld2] =>Müller, [name_feld3] =>Willy)
    ...
    [n] =>
    Array ([name_feld1] =>34, [name_feld2] =>Schmid, [name_feld3] =>Horst)
    )

    Die Elemente des ersten Arrays sind wiederum assoziative Arrays, wobei diese die Feldnamen als Schlüssel haben.

    Mein bisheriger Ansatz sieht so aus. Komme mit dem Ausdruck innerhalb der While-Schleife jedoch nicht weiter. Der Ansatz müßte jedoch stimmen.

    $result = mysql_query("select * from objekte");
    $field_names = array();
    for($i=0; $i<mysql_num_fields($result); $i++) {
    $field_names[] = mysql_field_name($result,$i);
    }
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
    $array[] =
    for($i=0; $i<count($field_names); $i++){
    array($field_names[$i] => "$row[$i]");
    }
    }

  • #2
    Hi,

    vielleicht in der Art:

    j=0;
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
    for($i=0; $i<count($field_names); $i++){
    $array[$j][$i] = array($field_names[$i] => "$row[$i]");
    }
    j++;
    }


    // oder:
    j=0;
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
    for($i=0; $i<count($field_names); $i++){
    $array[$j][$field_names[$i]] = $row[$i];
    }
    j++;
    }


    // eventuell auch:
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
    for($i=0; $i<count($field_names); $i++){
    $array[$field_names[$i]] = $row[$i];
    }
    }


    ...kanns leider grad nicht testen.
    Zuletzt geändert von Sebastian W; 11.04.2003, 13:44.
    Grüsse,
    Sebastian


    Profil Flex Freelancer
    Twitter twitter.com/flashhilfe
    Web Flash und Flex Community

    Kommentar


    • #3
      Hallo Sebastian,

      also dies funktioniet nun (deine mittlere Lösung):
      while($row = mysql_fetch_array($result)) {
      for($i=0; $i<count($field_names); $i++) {
      $data[$j][$field_names[$i]] = $row[$i];
      }
      $j++;
      }

      wenn ich schreibe:
      while($row = mysql_fetch_array($result)) {
      $j=0;
      for($i=0; $i<count($field_names); $i++) {
      $data[$j][$field_names[$i]] = $row[$i];
      }
      $j++;
      }

      dann wird nur der letzte Datensatz ausgegeben, das verstehe ich nun nicht. das müßte doch in Ordnung sein.
      folgender Ausdruck entspricht dem ersten und funktioniert:

      $j=0;
      while($row = mysql_fetch_array($result)) {
      for($i=0; $i<count($field_names); $i++) {
      $data[$j][$field_names[$i]] = $row[$i];
      }
      $j++;
      }

      das verstehe ich nicht so ganz, die $j's müßten doch innerhalb der while-Schleife sein.

      Kommentar


      • #4
        while($row = mysql_fetch_assoc($result)){
        $array[] = $row;
        }
        fertig
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          ich fass es nicht,
          das heißt $row ist ein assoziatives Array durch 'mysql_fetch_assoc' mit den Spaltennamen als Schlüssel.

          Kommentar


          • #6
            Lies mal das Manual von Funkitionen die Du benutzt auch mysql_fetch_array liefert ein assoziatives array zurück
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              Jepp, würde ich auch sagen, les mal noch ein wenig nach...
              Hier der link wo du weitere Informationen findest... http://www.php.net/manual/de/ref.mysql.php
              mfg
              Günni


              Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
              Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
              Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
              City-Tiger - Online durch die Straßen tigern...

              Kommentar


              • #8
                ok, danke,

                hab mich hier zu sehr auf php konzentriert, obwohl die mysql-Funktionen das Resultat schon bringen.

                Gruß Ralf

                Kommentar


                • #9
                  Und das obwohl mysql_fetch_array ne php Funktion ist
                  Beantworte nie Threads mit mehr als 15 followups...
                  Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                  Kommentar


                  • #10
                    Es gibt immer unterschiedlich wege an die Daten zu kommen die man braucht. PHP hat aber auch für diese Sachen funktionen. Siehe MelloPie´s Post.
                    mfg
                    Günni


                    Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
                    Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
                    Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
                    City-Tiger - Online durch die Straßen tigern...

                    Kommentar

                    Lädt...
                    X