Mehrere Datensätze ausgeben?
Griever
- php
Hi.
Ist vielleicht ne blöde frage, aber ich komm net dahinter.
Hab mehrere Datensätze:
name, tag, monat, jahr, wert
testuser, 03, 06, 2006, 1
testuser, 04, 06, 2006, 1
testuser, 05, 06, 2006, 1
testuser, 06, 06, 2006, 1
Spreche darauf auch alle (später werdens noch viele andere sein!) an:
$sql = "SELECT * FROM 'events' WHERE 'jahr' LIKE CONVERT(_utf8 '2006' USING latin1) COLLATE latin1_general_ci";
$result = mysql_query($sql);
$werte = mysql_fetch_array($result);
Habe versucht, diese (eigentlich mehreren) Datensätze via print_r ausgeben zu lassen.
Doch er gibt mir nur den zuerst gefundenen Datensatz aus.
Da ich jedoch alle haben will (z. B. in einem mehrdimensionalen Array), frage ich hier nochmal nach.
für Datenbank-Verbesserungsvorschläge bin ich noch dankbar, Bevor die Datenbank zu groß wird, um änderungen noch effektiv umzusetzen.
Vielen Dank für eure Hilfe ...
MFG
Griever
hi,
$werte = mysql_fetch_array($result);
Habe versucht, diese (eigentlich mehreren) Datensätze via print_r ausgeben zu lassen.
Doch er gibt mir nur den zuerst gefundenen Datensatz aus.
Natürlich, weil du ja auch nur diesen geholt hast.
(Darf man annehmen, dass du mal wieder _nicht_ aufmerksam im Manual nachgelesen hast, was die mysql_fetch-Funktionen eigentlich machen?
Dann hole das bitte jetzt nach.)
Da ich jedoch alle haben will (z. B. in einem mehrdimensionalen Array), frage ich hier nochmal nach.
(Fast) immer, wenn du in einem DV-Ablauf etwas "für mehrere" (Datensätze oder was auch immer) machen willst, brichst du dieses Problem auf "mache für einen" herunter - und führst eben dieses dann mehrmals durch.
Dazu haben sich Schleifen-Konstrukte recht gut bewährt.
gruß,
wahsaga
Hi.
Hab jetzt nochmal genauer nachgeschlagen.
mysql_fetch_row mit einer While-schleife ist das, was ich brauchte. Aber danke für die info, dass ich nochmal nachschlagen soll, sonst wär ich nie drauf gekommen.
MFG
Griever
echo $begrüßung;
$sql = "SELECT * FROM 'events' WHERE 'jahr' LIKE CONVERT(_utf8 '2006' USING latin1) COLLATE latin1_general_ci";
$result = mysql_query($sql);
$werte = mysql_fetch_array($result);
Habe versucht, diese (eigentlich mehreren) Datensätze via print_r ausgeben zu lassen.
Doch er gibt mir nur den zuerst gefundenen Datensatz aus.
Das ist das ganz normale Verhalten von mysql_fetch_array(). Das PHP-Handbuch gibt Auskunft, wie du an die anderen Datensätze gelangst.
echo "$verabschiedung $name";
while($werte = mysql_fetch_array($result))
{
mach was;
}
Hi,
für Datenbank-Verbesserungsvorschläge bin ich noch dankbar, Bevor die Datenbank zu groß wird, um änderungen noch effektiv umzusetzen.
ich bin kein Freund von Pauschalurteilen, daher frage ich erstmal nach, was dich bewegt hat Tag-Monat-Jahr in 3 Spalten aufzutrennen? Solltest du später Berechnungen anstreben _kann_ sich das extrem rächen. Allerdings will ich nicht verschweigen, dass du von beiden Ansätzen innerhalb einer Abfrage die jeweils andere Variante erreichen kannst, also entweder Spalten zusammensetzen und ein DATE daraus machen oder eben Funktionen wie YEAR(...) auf die Datumsspalte anwenden.
Aber gerade wenn du dir öfter mal die Frage stellst "was liegt zwischen x und y" (BETWEEN-Operator) wäre dir die Datenbank für vorgefertigte Datumsspalten sehr dankbar...
MfG
Rouven