Hallo dedlfix,
es ist vor allem gar nicht nötig, nach der SQL Abfrage nochmals die Werte zu vergleichen. Das hat MYSQL schon getan.
Wenn man mysqli verwendet, dann liefert mysqli_query(...) ein mysqli_result Objekt. Darauf gibt's ein num_rows Property, das muss man nur abfragen.
Die Datenbank kann man auch gleich beim Erzeugen des DB-Objekts mitgeben, 4. Parameter. Man muss bei der Objekt-Syntax nur connect_error abfragen, weil man immer ein Objekt bekommt.
$db = mysqli_connect("localhost", "root", "", "anmeldung");
if ($db === FALSE) {
// DB nicht verfügbar, Error Handling. mysqli_connect_error() liefert den Grund
}
$result = mysqli_query($db, "SELECT username FROM login" .
" WHERE benutzername='$username'" .
" AND passhash='$hashedPassword'");
$result ist im Falle eines SQL Fehlers FALSE, andernfalls ein mysqli_result Objekt. Das kann man mit Funktionsaufruf oder direkt befragen. Das Query-Ergebnis ist egal - es sei denn, man muss noch mehr Daten aus der login-Tabelle laden.
if ($result !== FALSE && $result->num_rows > 0) {
echo = "Login fertiggestellt! Hallo $username";
}
else {
echo = "Login fehlgeschlagen"
}
}
Rolf
--
sumpsi - posui - obstruxi
sumpsi - posui - obstruxi