SQL Query überprüfen auf Resultat

REC

Bekanntes Mitglied
Hallo zusammen,

Ich versuche gerade aus einer kleinen Filmdatenbank, einen SELECT Query auszuführen. Man kann nach Titelt Genre Preise oder Schauspieler suchen. Das funktioniert auch alles. Aber ich wollte falls die Suche nichts gefunden hat eine Javascript alert Fenster ausgeben. Aber zuerst einmal muss ich ja herausfinden ob der Query überhaupt was gefunden hat. Ich habe es mit isset probiert, leider ohne Erfolg.

So sieht der Code aus:,schreibe in PHP:

PHP:
$query = "SELECT Titel, Filmbeschreibung, Erscheinungsjahr, GenreName FROM vSuche WHERE WHERE $genre = idGenre"  ";

Und dann der zweite Teil:

PHP:
$res = mysql_query($query);
        

        if (isset($res)) {

            for ($i = 0; $i < mysql_num_rows($res); $i++) {


                $row = mysql_fetch_array($res);

                echo "<tr>";
                echo "<td>" . $row['Titel'] . "</td>";
                echo "<td>" . $row['Filmbeschreibung'] . "</td>";
                echo "<td>" . $row['Erscheinungsjahr'] . "</td>";
                echo "<td>" . $row['GenreName'] . "</td>";
                echo"</tr>";
            }

            $where = false;
        } 
        else {
            echo 'nichts gefunden';
        }
    }

Ich dachte wenn er nichts findet ist $res ja NULL. Aber das scheint nicht zu stimmen?


Update: Ich bin auf BOF und EOF gestossen. Aber ich denke das kann ich nicht einfach im php verwenden?
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
Das hat nichts mit Java zu tun, daher verschoben.

Ich dachte wenn er nichts findet ist $res ja NULL. Aber das scheint nicht zu stimmen?
Auch bei PHP gibt es eine Doku:
PHP: mysql_query - Manual
Nur für SELECT, EXPLAIN, SHOW oder DESCRIBE Anweisungen liefert mysql_query() eine Ressourcen-Kennung oder FALSE, falls die Anfrage nicht korrekt ausgeführt wurde. Für alle anderen SQL Anweisungen ist der Rückgabewert von mysql_query() im Erfolgsfall TRUE, im Fehlerfall FALSE. Ein Rückgabewert ungleich FALSE bedeutet, dass die Anfrage gültig war und vom Server ausgeführt werden konnte. [.....]
 

REC

Bekanntes Mitglied
Sorry für falsches Platzieren des Posts.


Ja ausgeführt wird der Query ja in jedem Fall auf der Datenbank. Aber wenn er kein Resultat findet wie finde ich das heraus? Ich meine NULL /False ist ja nicht das gleiche wie keinen Datensatz gefunden?
 

eRaaaa

Top Contributor
Weiter unten steht:
Angenommen eine Anfrage ist erfolgreich, dann können Sie für eine SELECT Anweisung mit mysql_num_rows() die Anzahl der gelieferten Datensätze herausfinden. Falls Sie DELETE, INSERT, REPLACE, oder UPDATE benutzt haben, können Sie die Anzahl der betroffenen Datensätze mit mysql_affected_rows() feststellen.
-->PHP: mysql_num_rows - Manual / PHP: mysql_affected_rows - Manual

Und google hilft auch nicht?
 

REC

Bekanntes Mitglied
Yep Danke!

Das war der Hinweis, mysql_num_rows.

Ich lass mir einfach ausgeben wieviele Reihen an Datensätze er gfunden hat, und wenn diese 0 sind hat er eben nichts gefunden.

So jetzt versuche ich noch das Javascript alert Fenster auszugeben. Vielleicht komm noch ne Frage ;)
 

REC

Bekanntes Mitglied
Ah da wär doch noch eine kleine Frage, das Java Fenster kommt jetzt.

Doch jetzt wäre es noch schön wenn dieses alert Fenster kommt, wenn der Benutzer "Ok" drückt, wird er auf eine andere Seite umgleitet. So wie ich es jetzt mache, kommt das Fenster gar nicht dazu das alert Fenter anzuzeigen, sondern der Browser springt direkt auf die andere Seite.

Kann mit jemand einen Tipp geben?
PHP:
else {
            echo '<script type="text/javascript">window.alert("Leider hat Ihre Suche keine Ergebnisse geliefert!");</script>';
           
            header("Location: /?page=suchedarstellung.php");
        }
 

Ähnliche Java Themen

Neue Themen


Oben