mySQL - Whileschlaufe

  • Themenstarter Themenstarter Chrigu
  • Beginndatum Beginndatum
C

Chrigu

Hallölle

Ich bin noch nen blutiger Anfänger in PHP (vorher ASP) und versuche gerade anhand ner Schlaufe Datensätze aus einer Datenbank rauszulesen:

Nun habe ich keine Ahnung wie das gehen soll, alles was ich versuche geht daneben!

Ich will folgendes:

mysql_select_db($MySQL_db, $conn);

$rs = 'SELECT * FROM d_kat';

$erg = mysql_query($rs);
$row = mysql_fetch_object($erg);

while ($row) {
// Hier werden die Datensätze ausgelesen
}

Nun ergibt das logischerweise ne Endlosschlaufe!

Wie kann ich nun zum nächsten Datensatz wechseln?

In ASP konnte man ja mit rs.MoveNext zum nächsten Datensatz navigieren und die Schlaufe wurde dann beendet, wenn rs.EOF war.
Wie geht das nun bei PHP/mySQL?

Ich finde leider nirgends was dazu, darum nehme ich an, das ich das falsch anpacke ;-)

Merci schonmal für eure Hilfe

Chrigu
 
Das funktioniert automatisch; mit jedem Durchlauf der Schleife (! ... nicht Schlaufe :)) wird ein Datensatz ausgegeben.
Ist kein Datensatz mehr vorhanden wird die Schleife beendet.
 
deinen Code könntest du so verwenden:
PHP:
mysql_select_db($MySQL_db, $conn);

$rs = 'SELECT * FROM d_kat'; 

$erg = mysql_query($rs);
while ($row = mysql_fetch_object($erg)) {
    // Hier werden die Datensätze ausgelesen

    // Ausgabe erfolgt dann z.B. so:
    echo $row->id;
}
 
Hallo Chrigu,

Was hier gepostet ist ist soweit richtig nur ist fraglich ob mysql_fetch_object(); für DIch die richtige Funktion ist.

Ich erklär das mal flux:


Angenommen Dein Datensatz ist folgender:

+----------+----------+-----------+
| Feld1 | Feld2 | Feld3 |
+----------+----------+-----------+

Wenn Du nun die Abfrage machst ( mysql_query(); ) stehen Dir zum "extrahieren" der Daten folgende Funktionen zur Verfügung

PHP:
mysql_fetch_row();    // liefert numerisches Array
mysql_fetch_array();  // liefert beide, assoziatives und numerisches Array (nach Wunsch)
mysql_fetch_object(); // liefert ein Objekt

// Wenn Du die Daten als nummerisches Array haben willst benutzt du das erste

while($numericArray = mysql_fetch_row($myresult))
{
// Die Daten sind dann hier mit $numericArray[0] usw. abzurufen.
}

// Wenn Du die Daten als assoziatives Array haben willst machst Du folgendes

while($numericArray = mysql_fetch_array($myresult,MYSQL_ASSOC))
{
// Die Daten sind dann hier mit $numericArray['feld1'] usw. abzurufen.
// Als Parameter kann statt MYSQL_ASSOC noch MYSQL_BOTH oder 
// MYSQL_NUM verwendet werden. (php-hilfe lesen)
}

// Falls Du aber die Daten wirklich als Objekt haben möchtest:

while($resultobject = mysql_fetch_objekt($myresult))
{
// Die Daten sind dann hier mit $resultobject->feld1 usw. abzurufen.
}

Sehr gut erklärt ist das ganze in der PHP-Hilde bei php.net

Hoiffe das hier hilft ein bischen

Gruss Danilo
 
Zurück