[PHP] Fehlermeldung wird nicht wie gewünscht ausgegeben?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von gh0stm4k3r, 25. Juli 2007 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 25. Juli 2007
    Fehlermeldung wird nicht wie gewünscht ausgegeben?

    Hallo,

    ich habe wieder einmal ein Problem bei PHP und wollte euch mal fragen, ob ihr mir helfen könnt. Ich arbeite gerade an einer grossen Datenbank mit Infos drin, welche bisher ganz gut funktioniert. Auch die Suchfunktion für bestimmte Daten habe ich mehr oder weniger gut hingebracht, allerdings funktioniert sie nicht wie gewünscht:

    Wenn ich ein Suchwort eingebe, welches Ergebnisse ausgeben wird (was ich natürlich weiss), funktioniert alles perfekt und die Suchfunktionen werden schön ausgegeben.
    Gebe ich hingegen absichtlich ein falsches Suchwort ein, kommt einfach "nichts". Allerdings möchte ich, dass bei falscher Eingabe eine Fehlermeldung ausgegeben wird. Folgenden Code habe ich:

    Die Variabel $error definiere ich logischerweise ganz oben:
    PHP:
    $error  "<font face=\"Verdana\" size=1 color=\"#FFFFFF\">Es wurden keine Ergebnisse zum Eingegebenen gefunden. Bitte überprüfe deine Suche nochmals auf kleinere Rechtschreibefehler.</font>" ;
    Später kommt eine while - Schleife, welche die rows halt ausgibt:
    PHP:
    while( $row  mysql_fetch_object ( $search ))
    {
    if(empty(
    $row -> name ))
    echo 
    $error ;

    else
    {
    ......
    }
    }
    Theoretisch müsste das doch funktionieren? Wie schon gesagt, bei richtiger Eingabe ist alles perfekt, allerdings wird NIE der Inhalt der Variabel $error ausgegeben ... Weiss da jemand Rat?

    MfG
     
  2. 25. Juli 2007
    AW: Fehlermeldung wird nicht wie gewünscht ausgegeben?

    Ne If schleife sieht doch anders aus..

    PHP:
    while( $row  mysql_fetch_object ( $search ))
    {
    if(empty(
    $row -> name )){
    echo 
    $error ;
    }else{
    ......
    }
     
  3. 25. Juli 2007
    AW: Fehlermeldung wird nicht wie gewünscht ausgegeben?

    Hoi,
    in die while Schleife wird doch _nur_ gesprungen wenn es ein Ergebnis gibt. Das heißt, die Verzweigung "if(empty($row->name))" wird in dem Kontext nicht wahr werden, weil du das schon vorher abgefangen hast.

    Du musst das vor der while Schleife abfangen z.B. mit mysql_num_rows:

    PHP:
    if( mysql_num_rows ( $search ) ==  0 )
    {
        echo 
    $error ;
    }

    while(
    $row  mysql_fetch_object ( $search ))
    {
    ...
    }

    greetz blackbone


    ps: es gibt keine "if schleife"
     
  4. 25. Juli 2007
    AW: Fehlermeldung wird nicht wie gewünscht ausgegeben?

    1. Es gibt keine If-Schleife...
    2. Solange nach dem if() nur eine Anweisung steht, brauch man das nicht einklammern...
     
  5. 26. Juli 2007
    AW: Fehlermeldung wird nicht wie gewünscht ausgegeben?

    Okay, danke für eure Antworten. Ich habe es inzwischen sowieso anders gelöst, ich habe einfach noch die Variabel $zahl = mysql_num_rows($search); hinzugefügt, und so etwas anderes ausgeben lassen, wenn es 0, 1 oder mehrere Ergebnisse gibt

    MfG
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.