kostenloser Webspace werbefrei: lima-city


Datenbankabfrage Result prüfen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    manug9

    manug9 hat kostenlosen Webspace.

    Hi,

    ich bin neu in PHP, und habe folgende Frage:
    Ich mache eine einfache Select-Abfrage an eine Datenbank. Nun möchte ich in PHP prüfen ob die Abfrage ein Ergebnis zurückliefert. Ist dies der Fall möchte ich das Ergebnis ausgeben, ansonsten den String "Nichts gefunden".
    Kann mir jemand sagen wie das geht?

    Danke,
    manug9
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. c*********c

    Wenn Du mysql_query() verwendest, um die Anfrage abzusetzen, so kannst Du durch ein einfaches Überprüfen auf FALSE feststellen, ob sie fehlgeschlagen ist:

    <?
    $result = mysql_query('SELECT [..]');
    if(FALSE === $result) 
    // weitere Aktion
    ?>



    andernfalls werden die Datenbankeinträge geliefert:
    <?
    $result = mysql_query('SELECT [..]');
    if(FALSE === $result) {
    print('Nichts gefunden');
    }
    else {
    while($row = mysql_fetch_assoc($result))
    print_r($row);
    }
    ?>


    => http://de.php.net/manual/de/function.mysql-query.php
    => http://de.php.net/manual/de/function.mysql-fetch-assoc.php
  4. Was genau ist der Unterschied zwischen mysql_fetch_object und mysql_fetch_assoc ? Scheint irgendwie das gleiche zu sein, weil ich immer object verwende für sowas.

    Und was genau hat das _r an dem print zu bedeuten ?
  5. ist nicht das gleiche.
    Das eine gibt ein Array, das andere ein Objekt zurück. ;D

    Les dir alles genau durch.
  6. Autor dieses Themas

    manug9

    manug9 hat kostenlosen Webspace.

    Hi,
    danke schonmal f&#252;r die Tips. Aber bei mir funktionierts irgendwie nicht...

    Folgenden Code habe ich:

    $query = "SELECT name FROM suche WHERE name LIKE '$b%'";
    $result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
    
    
    if (FALSE === $result){
            echo "Leider nichts gefunden!";
    }
    else{
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
       
            foreach ($line as $col_value) {
                    echo $col_value;
                    echo "<br>";
            }
    }
    
    }


    Warum geht das nicht? Er gibt mir wenn kein Treffer vorliegt einfach nicht "Nichts gefunden" aus...


    EDIT:

    Hab jetzt ne L&#246;sung gefunden, die genau das macht was ich will:
    if (mysql_num_rows($result) == 0){
    	echo "Leider nichts gefunden!";
    }
    else{
    ...


    Ciao,
    manug9

    Beitrag geändert: 10.10.2007 10:25:49 von manug9
  7. c*********c

    Warum geht das nicht? Er gibt mir wenn kein Treffer vorliegt einfach nicht "Nichts gefunden" aus...


    Mein Fehler: mysql_query liefert als R&#252;ckgabewert FALSE wenn die Abfrage fehlgeschlagen ist. Wurden keine entsprechenden Datens&#228;tze gefunden, bedeutet das nicht zwingend dass ein Fehler aufgetreten ist^^

    Ausserdem bewirkt [..]or die("Anfrage fehlgeschlagen: " . mysql_error()); dass bei einer fehlgeschlagenen Abfrage das Script mit dem obigen Verweis abgebrochen wird. Somit wird der erste Teil der if-Anweisung nie ausgef&#252;hrt werden.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!