Zeilen aus DB in ein Array packen?

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

  • Zeilen aus DB in ein Array packen?

    Hi!

    Also ich habe meine DB mit mehreren Zeilen. In diesen Zeilen gibt es das Feld "artikel". Ich möchte jetzt immer artikel auslesen und dann in $artikel speichern. Und dann das ganze mit der nächsten Zeile.
    So dass ich nacher mein Array $artikel hab, in dem alle Artikel aus der DB drinstehen.

    Müsste doch eigentlich mit ner While oder For-Schleife gehen, oder gibt es noch ne andere Möglichkeit. Was würdet ich benutzen?

    [ciao]
    der Tobi

  • #2
    While oder For bieten sich doch förmlich dafür an:
    Code:
    <?php
    $result = mysql_query("select artikelausdb from ArtikelDB");
    while($row=mysql_fetch_assoc($result)) { 
    	$artikel[] = $row[artikelausdb]; 
    } 
    ?>

    Kommentar


    • #3
      Muss ich ein assoziatives Array benutzen, oder kann ich da auch mit mysql_fetch_array()drangehen?

      Kommentar


      • #4
        du kannst auch mysql_fetch_array() benutzen und dann auf $row[0] zugreifen oder auch mit mysql_fetch_row() und dann auch auf $row[0].

        Kommentar


        • #5
          mysql_fetch_row($result): liefert einen Datensatz als indiziertes Array
          mysql_fetch_array($result): liefert einen Datensatz als assoziatives Array und als numerisches Array

          mysql_fetch_array($result,MYSQL_ASSOC) liefert einen Datensatz als assoziatives Array

          mysql_fetch_assoc($result) liefert ebenso einen Datensatz als assoziatives Array

          mysql_fetch_array($result,MYSQL_ASSOC) entspricht mysql_fetch_assoc($result) aber man kann eben kleine Fehler dabei machen (case sensitive) und syntaktisch ist es nicht so schlüssig lesbar (Wartbarkeit). Beide Varianten sind resourcenschonender als mysql_fetch_array($result)

          Aber wie Du es schlußendlich machen willst ist einerlei und bleibt Dir überlassen.

          Kommentar


          • #6
            Hab das auch so bei im PHP Manual nachgelesen.

            Aber so groß ist der Unterschied (in Sachen Resource-Auslastung) doch auch nicht, oder?

            Was würdet Ihr denn benutzen?

            Kommentar


            • #7
              Mahlzeit!
              Dieses Script dürfte die Probleme erschlagen. Bei Fragen zur Anwendung stehe ich gerne zur Verfügung.
              // Querys auf angesprochene Datenbank
              $msqlDataRequest = mysql($cfgDbDatabase, "SELECT * FROM $mstrTable")
              or die($strNoDatabase); // Alle Datensätze in table $mstrTable ansprechen
              $mqryTemp = mysql($cfgDbDatabase,
              "SELECT * FROM $mstrTable WHERE $mstrColumnKey='$mstrValuesKey'"
              )
              or die($strNoDatabase); // Datensätze nach Kriterium auswählen
              // ENDE Querys
              mysql_close(); // DB-Verbindung beenden
              //////////////////////// ENDE Datenbankaktionen //////////////////////////////
              //
              //////////////////////// Spaltennamen ermitteln //////////////////////////////
              $mintCount0=0;
              $mintCols=mysql_num_fields($msqlDataRequest);
              while ($mintCount0<$mintCols) :
              $marColArray[$mintCount0]=(mysql_field_name($msqlDataRequest,$mintCount0));
              $mintCount0++;
              endwhile;
              //////////////////////// ENDE Spaltennamen ermitteln /////////////////////////
              //
              //////////////////////// Füllen RückgabeArray ////////////////////////////////
              while ($marTemp=mysql_fetch_array($mqryTemp)) :
              //Key einfüllen
              $aintKey=$marTemp[$marColArray[0]];
              //Rest in Array füllen
              $mintCount1=1;
              while ($mintCount1<$mintCols):
              $marReturnArray[$aintKey][$marColArray[$mintCount1]]
              =$marTemp[$marColArray[$mintCount1]];
              $mintCount1++;
              endwhile;
              //ENDE Rest in Array füllen
              endwhile;
              ////////////////////// Ende Füllen RückgabeArray /////////////////////////////

              Kommentar


              • #8
                @hand: mysql_fetch_assoc() ist aber erst in PHP 4.04 oder so eingeführt worden -> also nicht abwärtskompatibel. Nur als kleiner Hinweis.

                @marc.dry: hä? wozu der Monstercode? Ich denke, die Frage von TobiaZ ist schon erledigt.

                Kommentar


                • #9
                  Original geschrieben von TobiaZ
                  Aber so groß ist der Unterschied (in Sachen Resource-Auslastung) doch auch nicht, oder?
                  Ich denke Du wirst es kaum merken, wenn überhaupt, ist ja abhängig von Traffic und Datenmenge die gelesen wird.

                  Original geschrieben von marc.dry
                  Mahlzeit!
                  Dieses Script dürfte die Probleme erschlagen.
                  Stimmt, das tut es, was immer es auch tun mag, *grins*

                  Original geschrieben von BrainBug
                  @hand: mysql_fetch_assoc() ist aber erst in PHP 4.04 oder so eingeführt worden
                  Danke für den Hinweis.

                  Kommentar


                  • #10
                    Ist noch nicht ganz erledigt. Ich würd gerne Wissen, welches ihr mir empfehlen würdet.

                    Ich hab mit Arrays nicht gerne viel zu tun. Das ist so ne Art Allergie. Aber man kommt halt nicht ohne aus.

                    Was soll ich denn jetzt nehmen?

                    Kommentar


                    • #11
                      Arrays sind doch schön - besonders in C, wenn man sich dann kreuz und quer durch die Elemente pointert, bis man selbst nicht mehr durchblickt

                      CAT Music Files

                      Kommentar


                      • #12
                        Original geschrieben von TobiaZ
                        So dass ich nacher mein Array $artikel hab, in dem alle Artikel aus der DB drinstehen.
                        Du wolltest doch die Artikel in einem Array haben oder?
                        Wenn Du sie dort drin hast kannst Du sie ja jederzeit über eine Schleife herausholen.

                        Code:
                        <?php
                        $result = mysql_query("select artikelausdb from ArtikelDB");
                        while($row=mysql_fetch_assoc($result)) {
                        	$artikel[] = $row[artikelausdb]; // Daten in Array schreiben 
                        } 
                        for ($i=0;$i<sizeof($artikel);$i++) { // Array lesen und Inhalte ausgeben
                        	print "$artikel[$i]<br>\n";
                        }
                        ?>
                        Arrays sind nicht so dramatisch, daß sie eine Allergie auslösen müssen. Ohne Arrays (In Cobol waren es die Tabellen mit occurs) ist programmieren für mich eigentlich nicht denkbar.

                        Kommentar

                        Lädt...
                        X