Hallo zusammen,
ich lerne derzeit PHP und mysql und versuche mich daran, einen Login über meine Datenbank zu basteln.
Es ist gewollt, dass sich der User über seine Matrikelnummer und sein Passwort anmeldet.
jedoch bekomme ich immer die Fehlermeldung: Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, string given in D:\XAMPP\htdocs\myphp\login.php on line 20
Ich habe bereits im Internet gesucht, aber noch hat nichts bei mir funktioniert. Da ich noch ziemlich neu in dem Thema bin, finde ich es auch einfach nicht raus (sitze schon einige Stunden hier)
Ich hab schon verstanden, dass ein Text zurückgegeben wird. Jedoch soll mysqli_num_rows doch eine Zahl liefern? Wie ist das umsetzbar? Immerhin ist die Matrikelnummer als INT gegeben.
Vielen Dank im Voraus.
<?php
//Verbindung zur Datenbank
$con = mysqli_connect("localhost", "root", "");
// Verbindungsüberprüfung zur DB
if (mysqli_connect_errno())
{
echo "Database connection failed.";
}
$Matrikelnummer = $_POST['Matrikelnummer'];
$Passwort = $_POST['Passwort'];
$loginbutton = $_POST['login'];
if ($loginbutton) //Nach klicken Login auf startseite.php
{
if($Matrikelnummer && $Passwort) //Überprüfung, ob alle Felder ausgefüllt wurden
{
$query = "SELECT Matrikelnummer FROM Student WHERE Matrikelnummer='$Matrikelnummer'"; // Überprüfung, ob Matrikelnummer vorhanden
$num = mysqli_num_rows($query);
if($num!=0)
{
WHILE ($row = mysqli_fetch_assoc($query)) //suchen in der DB nach Übereinstimmung PW zu Matrikelnummer
{
$dbMatrikelnummer = $row["Matrikelnummer"];
$dbPasswort = $row["Passwort"];
}
if ($dbMatrikelnummer == $Matrikelnummer AND $dbPasswort == Passwort) //erfolgreicher Login
{
echo "Login erfolgreich";
}
else "Ihre Daten sind falsch";
}
else
echo "Benutzer existiert nicht";
}
else
echo "Bitte füllen Sie alle Felder aus";
}
?>
Alles anzeigen