• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datenbank abfrage?

kruk

Mitglied
Hallo,
Ich habe mich heute zum ersten mal daran gemacht ein LogIn System zu schreiben. Allerdings hänge ich jetzt daran Das Passwort eines Benutzers abzufragen... Folgendes habe ich:

PHP:
$db_pw    = mysql_query('SELECT pw FROM login WHERE name = $name');
   echo($db_pw);

Allerdings hat $db_pw nie einen Wert... Eine Verbindung zur Datenbank besteht und auch der Name wird richtig ausgegeben.
Hat irgendwer eine Idee?

kruk
 
Werbung:
Ich habe das immer so gelöst:
PHP:
$abfrage = "SELECT pw FROM login WHERE name = $name";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_assoc($ergebnis))       
 {                   
$pw = $row['pw'];                                      
echo "{$pw}";        
}

Dein Problem ist, das du nur eine Reihe aus der Db ausgewählt hast, aber diese nicht ausgibt.
(Sorry für die schlechte Erkläung, ich habe diesen Code schon etwas länger)

LG
McCry
 
Ich weiss gar nicht wo ich anfangen soll.

$db_pw = mysql_query(...);

Klar ist $db_pw da leer, denn das enthält ja nur den Abfrage-Befehl.
Um da ein Ergebnis reinzubekommen, muss du die Abfrage auch ausführen.
Auch nach der (hoffentlich) erfolgreichen Abfrage enthält $db_pw immer noch nur den Befehl, das Ergebnis steht anderso.

Die Abfrage selbst sollte besser formatiert sein, vor allem wenn man Variablenamen verwendet, die (im Moment vielleicht nicht aber später möglicherweise) von MySQL oder PHP als Superglobals verwendet werden könnten.

Code:
[FONT=Courier New][COLOR=#0000cc]$abfrage [/COLOR][COLOR=#006600]= [/COLOR][COLOR=#cc0000]"SELECT `pw` FROM `login` WHERE `name` = '".[/COLOR][COLOR=#ff0000]$name."'";[/COLOR][COLOR=#006600]
[/COLOR][/FONT][FONT=Courier New][COLOR=#0000cc]$ergebnis [/COLOR][COLOR=#006600]= [COLOR=#0000cc][FONT=Courier New]mysql_fetch_object[/FONT][/COLOR]([/COLOR][COLOR=#0000cc]mysql_query[/COLOR][COLOR=#006600]([/COLOR][COLOR=#0000cc]$abfrage[/COLOR][COLOR=#006600]));
[/COLOR][COLOR=#000000]echo $ergebnis->pw;[/COLOR][/FONT]
 
Werbung:
Danke, es funktioniert. Ich bin davon ausgegangen das mysql_query auch gleich abfragt. Jetzt weiß ich es endlich richtig :)
 
Die Formatierung des Querys sollte eigentlich in Ordnung gewesen sein. Der Fehler lag wohl in den Anführungszeichen. Strings mit Single-Quotes (') werden nicht geparst (demnach keine Variablen ersetzt), während Strings mit Double-Quotes (") geparst werden.

PHP:
echo 'Ich bin $name';
// Würde liefern: Ich bin $name
echo "Ich bin $name";
// Würde liefern: Ich bin vitus37
[Du siehst den Unterschied schon an der farblichen Hervorhebung des Syntax Highlighters des Forums.]
 
Bei mir funktioniert es nicht, aber ist ja auch gut so wie es jetzt ist :)

Habe aber noch eine Frage, die aber eher ins Thema JavaScript gehört. Und zwar habe ich vor einiger Zeit mal eine Seite gesehen, die automatisch und sofort (wenn man das Textfeld gewechselt hat) überprüft hat ob z.B. der Nutzername noch verfügbar ist. Jetzt frage ich mich aber wie das gehen soll... Man müsste theoretisch eine Anfrage an den Server schicken ohne das sich die Seite aktualisiert?
 
Werbung:
Zurück
Oben