gabi: IF Daten vorhanden dann zeige ELSE keine Daten vorhanden

Hallo,
Ich bin gerade dabei mein erstes Forum zu basteln und bin dabei auf ein Problem gestoßen.
Ich frage mit nachfolgendem SELECT die Datenbank ab ob es einen Eintrag gibt der so lautet wie die Variable $suche. Diese Variable wird von einem Formular übergeben, in welchem man den Suchbegriff eingibt.
Ist der Suchbegriff in der DB vorhanden, dann soll dieser oder diejenigen angezeigt werden. Das funktioniert auch problemlos.
Ich möchte aber jetzt noch eine Anweisung unterbringen die mir eine Meldung ausgibt falls es keinen Eintrag in der DB gibt der so lautet wie der Suchbegriff.

$result = mysql_query("SELECT * FROM forum WHERE thema LIKE '%$suche%' OR nachricht LIKE '%$suche%' LIMIT 20",$db);

if(HIER ABFRAGE OB DATEN VORHANDEN SIND
WENN JA DANN FÜRE NACHSTEHNDE ANWEISUNG AUS)

while($row=mysql_fetch_array($result))
{

// Anzeigen der daten

}

else
{
HIER AUSGABE DES TEXTES FALLS KEINE ENTSPRECHENDEN DATEN VORHANDEN SIND
}

Danke

Gabi

  1. Hallo,

    --> hallo

    if(num_rows($result)) {
     echo anzeige;
    else
     echo fehler;

    da ich postgresql nutze weiss ich den genauen Befehl für num_rows in mysql nicht, aber das sollte ja trotzdem dann kein problem sein das umzusetzen

    hope it helps
    romy

    1. Danke,
      Funktioniert!

      lg
      gabi

  2. Ich möchte aber jetzt noch eine Anweisung unterbringen die mir eine Meldung ausgibt falls es keinen Eintrag in der DB gibt der so lautet wie der Suchbegriff.

    $result = mysql_query("SELECT * FROM forum WHERE thema LIKE '%$suche%' OR nachricht LIKE '%$suche%' LIMIT 20",$db);

    if(HIER ABFRAGE OB DATEN VORHANDEN SIND
    WENN JA DANN FÜRE NACHSTEHNDE ANWEISUNG AUS)

    PHP-Anleitung -> Kapitel MySQL -> Funktionsliste -> "mysql_num_rows -- Liefert die Anzahl der Datensätze im Ergebnis"

    1. Hallo Du Stubser...

      Ich möchte aber jetzt noch eine Anweisung unterbringen die mir eine Meldung ausgibt falls es keinen Eintrag in der DB gibt der so lautet wie der Suchbegriff.

      $result = mysql_query("SELECT * FROM forum WHERE thema LIKE '%$suche%' OR nachricht LIKE '%$suche%' LIMIT 20",$db);

      if(HIER ABFRAGE OB DATEN VORHANDEN SIND
      WENN JA DANN FÜRE NACHSTEHNDE ANWEISUNG AUS)

      PHP-Anleitung -> Kapitel MySQL -> Funktionsliste -> "mysql_num_rows -- Liefert die Anzahl der Datensätze im Ergebnis"

      Das ist aber nicth die Antwort auf die Frage. Gabi muss in ihrer if-bedingingung danach fragen, ob sie ein gültiges Reslutset erhalten hat.

      if ($result)
      {
        ...
      }
      else
      {
        echo "SQL-Fehler: ".$mysql_error;
      }

      Es kann trotzdem noch sein, dass das Resultset leer ist. Dafür ist Deine Abfrage gut.

      Grüße

      Tom

      1. Hallo Gabi,

        $result = mysql_query("SELECT * FROM forum WHERE thema LIKE '%$suche%' OR nachricht LIKE '%$suche%' LIMIT 20",$db);

        das müsste mMn $result = mysql_db_query(" .... ");

        heißen.

        if ($result)
        {
          ...
        }
        else
        {
          echo "SQL-Fehler: ".$mysql_error;
        }

        Es kann trotzdem noch sein, dass das Resultset leer ist. Dafür ist Deine Abfrage gut.

        Grüße

        Tom

        1. $result = mysql_query("SELECT * FROM forum WHERE thema LIKE '%$suche%' OR nachricht LIKE '%$suche%' LIMIT 20",$db);

          das müsste mMn $result = mysql_db_query(" .... "); heißen.

          "Note: This function has been deprecated since PHP 4.0.6. Do not use
             this function. Use mysql_select_db() and mysql_query() instead."
             http://www.php.net/manual/en/function.mysql-db-query.php

          1. Hi,

            das müsste mMn $result = mysql_db_query(" .... "); heißen.

            "Note: This function has been deprecated since PHP 4.0.6. Do not use
               this function. Use mysql_select_db() and mysql_query() instead."
               http://www.php.net/manual/en/function.mysql-db-query.php

            Jaja, man wird alt. Mein PHP ist ja auch schon älter *gg*
            Hatte es eben zwar noch gesehen, dass es da eine neuere Funktion gibt, aber da war das Posting schon unterwegs...

            Die Prüfung auf die Anzahl der Datensätze macht ja dann erst wirklich Sinn, wenn man weiß, dass es keinen SQL-Fehler gegeben hat. Es könnte ja auch der Zugriff verwehrt worden sein.

            LG

            Tom

      2. Ich möchte aber jetzt noch eine Anweisung unterbringen die mir eine Meldung ausgibt falls es keinen Eintrag in der DB gibt der so lautet wie der Suchbegriff.

        if(HIER ABFRAGE OB DATEN VORHANDEN SIND
        WENN JA DANN FÜRE NACHSTEHNDE ANWEISUNG AUS)

        PHP-Anleitung -> Kapitel MySQL -> Funktionsliste -> "mysql_num_rows -- Liefert die Anzahl der Datensätze im Ergebnis"

        Das ist aber nicth die Antwort auf die Frage. Gabi muss in ihrer if-bedingingung danach fragen, ob sie ein gültiges Reslutset erhalten hat.

        Die Frage lautete "Abfrage ob Daten vorhanden sind" bzw. "eine Meldung ausgibt, falls es keinen Eintrag in der DB gibt" -> Auszählung des Ergebnisses -> mysql_num_rows().

        Von einer Fehlerprüfung war erstens keine Rede und zweitens ist Ihre Frage mit "if ($result)" nicht gelöst, weil $result auch dann noch gültig ist, wenn kein Ergebnis vorhanden ist. Anders ausgedrückt: $result ist nur dann null, wenn tatsächlich ein Fehler vorliegt - kein Ergebnis ist aber kein Fehler, sondern einfach nur ein leeres Ergebnis.

        Nichtsdestotrotz gehört die Fehlerabfrage aber selbstredend mit rein.

        Der Anleitungsstubser.