(MySQL) Irgendwie bin ich zu blöd: SELECT mit PHP
Dogfish
- php
Hallo ihr da draußen,
irgendwie bin ich zu blöd:
Ich habe das Forumsarchiv durchsucht, bin auber aus dem ganzen auch nicht schlau geworden. Ich habe auchschon ein paar PHP-Bücher durchkämmt, aber hab es nie hingekriegt.
Also nun meine Problem: Ich habe eine MySQL-Tabelle:
Tabelle Lieder
+--------------+-----------+------------+--------------+
| Artist | Lied | Album | Songtext |
+--------------+-----------+------------+--------------+
| Artist1 | Lied 1 | Album1 | Songtext1 |
| Artist2 | Lied 2 | Album2 | Songtext2 |
+--------------+-----------+------------+--------------+
| usw... |
+------------------------------------------------------|
Nun habe ich ein Suchscript, mir dem man bestimmte Felder durchsuchen kann. Nun habe ich zwei Varianten ausprobiert:
$ergebnis = mysql_query("SELECT * FROM Lieder WHERE Artist = $artist", $dbh);
echo $ergebnis;
Hierbei entspricht $dbh dem mysql_connect.
Nun ist dieses Script scheinbar falsch. Es liefert folgenden Wert zurück:
Resource id #4
Also das funzt schon mal nicht. Ich habe also in meinem PHP-Buch weitergelesen. Dann kam ich darauf:
$ergebnis = mysql_query("SELECT * FROM Lieder WHERE Artist = $artist", $dbh);
$ergebnis = mysql_fetch_array($ergebnis);
echo $ergebnis[0].$ergebnis[1] usw.
Schön und gut, das funktioniert jetzt. Allerdings liefert es mir nur den ersten Eintrag, den er findet.
Was mache ich falsch?
Danke schon mal im Vorraus,
Dogfish
Hallo Dogfish,
kommen mir bekannt vor die Probleme. Muss man sich einfach (wenn man es dann weiß) nochmal vor Augen führen, dann wird's irgendwie logisch.
http://php3.info/manual/de/function.mysql-fetch-array.php erklärt einiges dazu und liefert auch entsprechende Codestücke.
Grüße aus Würzburg
Julian
Servus...
mein lösungsansatz wäre, dass du musst die mysql-ressource mit einer schleife durchlaufen:
$ergebnis = mysql_query("SELECT artist,lied, album,songtext FROM lieder WHERE artist='$artist'",...);
while(list($artist,$lied,$album,$songtext) = mysql_fetch_row($ergebnis) {
echo "...";
}
das list speichert dabei die werte in den variablen, die von dem mysql_fetch_row zurückgegeben werden. dabei springt mysql_fetch_row in den nächsten datensatz. und so durchläuft die schleife die ganzen datensätze
gruß
plastefuchs