# SQL Query überprüfen auf Resultat



## REC (9. Sep 2011)

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:


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

Und dann der zweite Teil:


```
$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?


----------



## eRaaaa (9. Sep 2011)

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 (9. Sep 2011)

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 (9. Sep 2011)

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 (9. Sep 2011)

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 (9. Sep 2011)

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?

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


----------

