Eric Teubert: Mit PHP gesamte Tabelle auslesen

Hi,

ich möchte mit per PHP eine komplette Tabelle in ein Array einlesen. Alles, was ich erreiche, ist aber nur die jeweils erste Zeile des tables. Natürlich könnte ich mit einer Schleife jede Zeile einzeln durchgehen aber dann hätte ich ja Hunderte Querrys für nur eine Abfrage - das muss doch auch anders gehen, oder?

Danke im Voraus

Eric

  1. Hi,
    die Schleife ist da schon der richtige Ansatz.

    $result = mysql_query("QUERY");
    while($rows = mysql_fetch_array($result))
      {
      // in $row liegen jetzt die Daten der jeweiligen Datenbank-Tabellen-Zeile
      // schreibe die in ein Array
      }

    mfg
    Knusperklumpen

    1. Hallo

      Hi,
      die Schleife ist da schon der richtige Ansatz.

      $result = mysql_query("QUERY");
      while($rows = mysql_fetch_array($result))
        {
        // in $row liegen jetzt die Daten der jeweiligen Datenbank-Tabellen-Zeile
        // schreibe die in ein Array
        }

      Wozu? Sie ist schon in einem Array. $result beinhaltet alle Zeilen, $row jeweils eine mit allen Feldern als Arrayelemente. Ein zweidimensionales Array eben.

      Tschö, Auge

      --
      Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
      (Victor Hugo)
      Veranstaltungsdatenbank Vdb 0.1
      1. hi,

        $result = mysql_query("QUERY");

        $result beinhaltet alle Zeilen

        Nö, $result enthält eine "Resource ID".

        Ein zweidimensionales Array eben.

        Nö, eben nicht.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hallo

          hi,

          $result = mysql_query("QUERY");

          $result beinhaltet alle Zeilen

          Nö, $result enthält eine "Resource ID".

          Ja, richtig. Asche auf's Haupt, ungenau/falsch formuliert.

          Ich ging natürlich davon aus, dass diese Variable auf dem üblichen Weg (mysql_fetch_array, mysql_fetch_assoc, etc.) behandelt wird und das dies keiner weiteren Erwähnung bedarf.
          Wenn es mehrere Zeilen gibt, werden die ja mit einer Schleife ausgegeben. Ab dann kann man sie wie ein normales Array behandeln. Damit erübrigt sich im Normalfall die Übertragung der Daten in ein weiteres Array, wie es Knusperklumpen vorschlug.

          Jede Zeile liegt nach dem Beispiel in der Variable $row vor, welche wiederum ein assoziatives Array (Feldname=>Feldwert) der Zeile ist.

          Diese Struktur meine ich, wenn ich in diesem Zusammenhang von einem zweidimensionalen Array schreibe.

          Tschö, Auge

          --
          Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
          (Victor Hugo)
          Veranstaltungsdatenbank Vdb 0.1
          1. hi,

            Wenn es mehrere Zeilen gibt, werden die ja mit einer Schleife ausgegeben. Ab dann kann man sie wie ein normales Array behandeln.

            mit mysql_fetch_array() hast du _einen_ Datensatz in einem Array vorliegen.
            Wenn du diesen in $datensatz speicherst, überschreibst du dir dies aber im nächsten Schleifendurchlauf wieder.

            Also musst du, wenn du die Daten auch nach der Schleife noch zur Verfügung haben willst, $datensatz als Array anlegen, und dann $datensatz[] = mysql_fetch_array() o.ä. machen.

            Damit erübrigt sich im Normalfall die Übertragung der Daten in ein weiteres Array, wie es Knusperklumpen vorschlug.

            Sie hat sich nicht erübrigt, sondern genau das entspricht dem, was ich oben schrieb.

            Jede Zeile liegt nach dem Beispiel in der Variable $row vor, welche wiederum ein assoziatives Array (Feldname=>Feldwert) der Zeile ist.

            Nein, siehe oben.

            Diese Struktur meine ich, wenn ich in diesem Zusammenhang von einem zweidimensionalen Array schreibe.

            Ein zweidimensionales Array liegt hier _nicht_ vor, so lange du nicht selber explizit eins erstellst.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Hi,

              Danke für die kleine Diskussionsrunde, hat mir weitergeholfen - habe die Methode eigentlich schon etliche Male benutzt aber ... manchmal hat man doch ein Brett vor'm Kopf :-/

              Danke nochmals

              MfG

              Eric

            2. Hallo

              mit mysql_fetch_array() hast du _einen_ Datensatz in einem Array vorliegen.
              Wenn du diesen in $datensatz speicherst, überschreibst du dir dies aber im nächsten Schleifendurchlauf wieder.

              Ja und? Eric will mit einem Query alle Datensätze aus einer Tabelle auslesen um mit ihnen arbeiten/sie anzeigen/(was weiß ich) zu können. Er will dazu ein Array haben. Er kann also die Ergebnisse per while() durchgehen und direkt mit den Ergebnissen arbeiten, oder diese in ein neues Array überführen und dann mit diesem arbeiten.
              Die Frage ist doch nur, ob es der nachher auzuführende Arbeitsschritt notwendig macht, die Ergebnisse der Datenbankabfrage in ein neues Array umzulagern, oder ob die direkte Arbeit am Abfrageergebnis effektiver ist.

              Tschö, Auge

              --
              Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
              (Victor Hugo)
              Veranstaltungsdatenbank Vdb 0.1
              1. hi,

                Ja und?

                Was "ja und"?
                Deine Analyse, was Eric wohl will, ist unbestritten.
                Nur deine Aussagen bzgl. eines zweidimensionalen Array waren schlichtweg falsch.

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }