Also ich habe mich heute schwer in MySQL eingearbeitet und auch schon einige Erfolge verbucht
Allerdings schaffe ich es zum ver**** nicht eine Tabelle so ausgeben zu lassen wie ich das möchte
Also nehmen wir mal an in der Tabelle sind die Spalten „Name“ und „Alter“ gegeben. Eingetragen sind „Name1“, „Age1“ und „Name2“, „Age2“ und „Name3“, „Age3“.
Ausgegeben werden soll es so:
$ausgabe = array(
"Name1" => "Age1",
"Name2" => "Age2",
"Name3" => "Age3");
Und zwar das auch egal wie viele Reihen / Einträge in der Tabelle sind.
Ich hab es versucht mit :
mysql_ fetch_ array
mysql_ fetch_ assoc
mysql_ fetch_ row
Aber alles was ich erreicht habe, ist dass ein eintrag ausgegeben wurde (siehe $row = mysql_fetch_row($result);
echo $row[0];
echo $row[1];) Oder dass gar nix passiert ist.
Na fein, das schaffst du bestimmt auch noch ein zweites Mal.
Oder eine unbestimmte Anzahl mal, je nachdem wie viele Datensätze es gibt - dazu bietet sich eine Schleife an.
Dazu hat sogar das Manual zu mysql_fetch_array ein Beispiel, und auch in jedem Anfänger-Tutorial dürfte das beschrieben sein.
Hmm hab mich schon gewundert, bei MySQL kommen kaum Fehlermeldungen, da kann ich net viel verbessern…
Aber funzt net, es wird immernoch unverändert die erste Reihe ausgegeben.
$row2 = mysql_fetch_row($result);
echo $row2[0];
echo $row2[1];
?>[/code]
Ich hab mal beide Varianten gesetzt (error), aber es funzt gar keine, als Quelltext wird nur folgendes ausgegeben:
Name1Age1
Nun bin ich mit meinem Latein am Ende Aber iwas muss ich ja richtig gemacht haben, schließlich wird das eine ja ausgegeben.
Natürlich nicht.
Wieso sollte PHP einen Fehler melden, wenn aus Sicht von PHP alles reibungslos verlaufen ist?
PHP hat deine Abfrage ordnungsgemäß an die Datenbank übergeben, und diese darauf geantwortet. Aus Sicht von PHP also alles paletti.
Deshalb musst du die Datenbank explizit nach Fehlermeldungen fragen, wenn du wissen willst, ob es ihrerseits welche gab.
$row2 = mysql_fetch_row($result);
echo $row2[0];
echo $row2[1];
?>[/code]
Ja das ist alles, meineswissens müssen keine Html-Tags enthalten sein, damit es funzt oder.
Und was bekommst du für ein Ergebnis, wenn du die identische SQL-Abfrage direkt über phpMyAdmin testest?
Wenn es keinen zweiten Datensatz gibt, dann muss dein Script in der geposteten Form einen Fehler liefern.
Wenn es das nicht tut, kann das eigentlich nur noch bedeuten, dass es zwar einen zweiten Datensatz gibt, dieser aber nur leere Felder enthält. In Fall existiert dann zwar kein Fehler, aber „Nichts” siehst du halt auch in der Ausgabe nicht.
Um sowas zu prüfen, eigenet sich auch var_dump ganz gut. Damit mal $row2 zur Kontrolle ausgeben lassen.
Also mit phpMyAdmin steh ich auf dem Kriegsfuß Ich habe bis jetzt noch keinen Befehl ausführen können, da kommt immer No Database Selected, das müsste doch mit einloggen automatisch gehen und ich hab auch nix gefunden, dass es klappt -_-
Mit var_dump kommt
array(2) { [0]=> string(0) "" [1]=> string(0) "" } Also wirklich leeres Feld o leck… Nur ich weis net wie sich das da reingeschlichen hat, ich hab ganz normal die INSERT INTO gemacht…
Aber ich hab mich hier echt sau dumm angestellt hätte auch mal auf die Idee kommen können, die weiteren Reihen auszugeben -.-