Problem mit mysql_fetch_row
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfrage
antwort
brauche
code
dank
datenbank
datum
einfache frage
fehler
http
liefern
manual
not
null
re
tabelle
tun
url
wurst
zeile
-
Hallo Leute,
Ich bin neu hier im Forum und auch mit MySQL noch nicht ganz vertraut, also hoffe ich, dass ich hier keinen Mist poste, aber ich hoffe doch, dass mir hier mit meinem Problem geholfen werden kann.
Und zwar habe ich ein Skript zum ref="/login" title="Login">login auf einer Website geschrieben:
$anfrage = "SELECT * FROM Nutzerdata WHERE name = '$user'"; $anfrage = mysql_query($anfrage); if ($row = mysql_fetch_row($anfrage)) { $row = mysql_fetch_row($anfrage); $username = $row[0]; $password = $row[1]; $mail = $row[2]; $rank = $row[3]; $activated = $row[4]; if (isset($password)) { ...
Ganz davon abgesehn, dass es vielleicht namentlich noch etwas verbesserbar ist, habe ich zuvor mysql_fetch_object und $row->name etc stehen haben. Dabei trat jedoch property of non-object -Fehler auf. Jetzt mit mysql_fetch_row gibts keine Meldung mehr, aber es ist immer noch isset($password) = false.
Einfache Frage: Warum und was kann ich dagegen tun? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
daredevil92 schrieb:
probiere mal das aus und dann sehen wir, wie's weiter:
... Einfache Frage: Warum und was kann ich dagegen tun?<?php error_reporting(E_ALL | E_STRICT); // connecten musst du da natürlich selber ;) $sql = "SELECT * FROM Nutzerdata WHERE name='$user'"; $res = mysql_query($sql); while($row = mysql_fetch_assoc($res)) { foreach($row as $key => $value) { echo "$key :: $value<br />"; } }
Beitrag zuletzt geändert: 22.10.2011 1:08:29 von hemiolos -
Danke schonmal für die Antwort. Das ganze gibt schonmal was ordentliches zurück:
name :: abc<br />password :: b2157e7b2ae716a747597717f1efb7a0<br />mail :: *********@gmx.de<br />rank :: 1<br />activated :: 0<br />
Jedoch möchte ich die einzelnen Werte in die entsprechenden Variablen übergeben (also $username, $password usw).
Erhalte ich die jetzt mir $username = $key['username'] ?
P.S.: In der Datenbank ist name als primary gesetzt, daher kann die anfrage nur eine Zeile liefern, brauche ich das foreach dann überhaupt? -
daredevil92 schrieb:
Danke schonmal für die Antwort. Das ganze gibt schonmal was ordentliches zurück:
name :: abc<br />password :: b2157e7b2ae716a747597717f1efb7a0<br />mail :: *********@gmx.de<br />rank :: 1<br />activated :: 0<br />
Jedoch möchte ich die einzelnen Werte in die entsprechenden Variablen übergeben (also $username, $password usw).
Erhalte ich die jetzt mir $username = $key['username'] ?
P.S.: In der Datenbank ist name als primary gesetzt, daher kann die anfrage nur eine Zeile liefern, brauche ich das foreach dann überhaupt?
Guck bei mysql-fetch-assoc und foreach nach um es zu verstehen.
while($row = mysql_fetch_assoc($res)) { $username = $row['username'] $password= $row['password'] //USW... }
Beitrag zuletzt geändert: 22.10.2011 21:38:24 von simuliertes -
daredevil92 schrieb:
wie @simuliertes es zeigt, oder
... die einzelnen Werte in die entsprechenden Variablen übergeben (also $username, $password usw) ...
(also vorsicht! wieder 'mysql_fetch_row()')while($row = mysql_fetch_row($res)) { list($username, $password, ...) = $row; }
-
simuliertes schrieb:
while($row = mysql_fetch_assoc($res)) { $username = $row['username'] $password= $row['password'] //USW... }
das würde wegen der fehlenden Semikolons nichts ergebenaußer Fehler; also nicht vergessen
und wenn sie gesetzt sind und mehrere "user" in der Datenbank sind was würde wohl dabei rum kommen ?
Angenommen dies ist Deine Tabelle
CREATE TABLE `users` ( `ID` int(12) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL, `pass` varchar(32) NOT NULL, `mail` varchar(50) NOT NULL, `ranking` int(12) NOT NULL, `active` int(5) NOT NULL, PRIMARY KEY (`ID`) )
So sprichst du deine Tabelle an
$sql = mysql_query("SELECT * FROM users WHERE name= '$user'"); $res = mysql_fetch_assoc($sql);
So kannst Du Deine Zuweisungen machen (beachte die Schlüsselwerte der variable $res)
$id = $res['ID']; $username = $res['name']; $password = $res['pass']; $email = $res['mail']; $rank = $res['ranking']; $activated = $res['active'];
wie du diese Daten verarbeitest ist völlig wurst, solltest aber überlegen die Daten ggf. per ID auszulesen, weiß ja nicht was genau du vor hast -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage