mysql_fetch_array gibt nur eine Zeile zurück

Ok, ich habe folgenden Code:

$array = mysql_query("SELECT artist FROM directory WHERE artist LIKE 'a%' OR artist LIKE 'b%' OR artist LIKE 'c%'"); $array_result= mysql_fetch_array($array); 

Wenn ich dann versuche, den Inhalt zu $array_result[0]; , kann ich nur $array_result[0]; , der das erste Element ausgibt, aber wenn ich versuche, $array_result[1]; Ich bekomme einen undefinierten Offset.

Wenn ich die obige Abfrage über PHPMyAdmin ausführen, wird jedoch eine Liste mit 10 Elementen zurückgegeben. Warum wird dies nicht als ein Array von 10 Elementen erkannt, was mir erlaubt, 0-9 zu echo?

Danke für die Hilfe.

   

Das liegt daran, dass das Array eine einzelne Zeile in der zurückgegebenen Ergebnismenge darstellt. Sie müssen die function mysql_fetch_array() erneut ausführen, um den nächsten Datensatz zu erhalten. Beispiel:

 while($data = mysql_fetch_array($array)) { //will output all data on each loop. var_dump($data); } 

Sie sollten while , um alle Daten zu erhalten.

 $array_result = array(); while ($row = mysql_fetch_array($array, MYSQL_NUM)) { $array_result[] = $row; } echo $array_result[4]; 

Ich bevorzuge stattdessen diesen Code:

 $query = "SELECT artist FROM directory WHERE artist LIKE 'a%' OR artist LIKE 'b%' OR artist LIKE 'c%'"; $result = mysql_query($query) or die(mysql_error()); while(list($artist) = mysql_fetch_array($result)) { echo $artist; } 

Wenn Sie Ihrer Abfrage weitere Felder hinzufügen, fügen Sie einfach weitere Variablen hinzu ($ artist, $ field1, $ field2, etc …)
Ich hoffe, es hilft 🙂