Warum wird immer der if case ausgeführt, auch wenn die bedingungen eigentlich nicht erfüllt sind?
Es handelt sich hierbei um das Prüfen, ob der Schüler die erforderliche Klassenstufe für ein bestimmtes Projekt hat, aber es wird immer der if case ausgrführt.
Weiß jemand warum es nicht funktioniert? Habe ich irgendeinen Denkfehler?
2 Antworten
Die query-Methode liefert bei Erfolg ein mysqli_result-Objekt zurück, andernfalls false.
Zuerst einmal müsstest du den letztgenannten Fall abfangen, denn auch mit den boolschen Werten kann PHP weiterarbeiten. So würdest du in diesem Beispiel:
$a = false;
$b = false;
if ($a >= $b) print "is true";
eine Ausgabe erhalten. Die boolschen Werte werden implizit in Ganzzahlen konvertiert (false = 0) und 0 >= 0 stellt eine wahre Aussage dar.
Im zweiten Schritt müsstest du den Datensatz aus dem Ergebnisobjekt herauslesen.
$result = // execute SQL query ...
if ($result) {
$year = intval($result->fetch_column(0));
/* ... */
Für Deine Auswertung reicht eine einzige SQL-Anweisung mit der Rückgabe des gewünschten Ergebnisses. Wenn was nicht stimmt musst Du debuggen.