Variablencheck

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variablencheck

    $check = mysql_query("SELECT author,title,journal FROM data WHERE author='$author' AND title='$title' AND journal='$journal'");

    if (empty($check))
    {mysql_query("INSERT INTO data (author,title,journal) VALUES ('$author','$title','$journal')");
    echo '<p class="inhalt">Article was inserted.</p>';}
    else
    {echo '<p class="error">Article already exists.</p>';}

    unset($check);

    Was passiert hier wohl? Ich denke, dass hier eine Variable $check definiert wird, die schliesslich dazu dient, einen Eintrag in eine Datenbank zu kontrollieren. Wenn $check einen bereits vorhandenen Eintrag liefert, dann wird der neue Eintrag nicht übernommen. Allerdings funktioniert es nicht!

    Vielen Dank!

  • #2
    nimm statt
    PHP-Code:
    if(empty($check)) 
    mysql_num_rows():
    PHP-Code:
    if(mysql_num_rows($check) === 0

    Kommentar


    • #3
      oder lass dir mal nach jedem mysql_query() den Fehler mit mysql_error() ausgeben, vllt hast du ja nen Fehler in deinem SQL.
      hopka.net!

      Kommentar


      • #4
        Ja, mit "mysql_num_rows" funktioniert es. Warum funktioniert es nicht mit "empty"?

        Kommentar


        • #5
          in der Variable ist ein leeres MySQL-Result, und empty prüft nur, ob in der Variable was drin ist. Und weil etwas drin ist, gibt empty eben false zurück, weil es sieht, es ist etwas drin, aber es kann keine MySQL-Results prüfen.
          hopka.net!

          Kommentar


          • #6
            empty überprüft ob eine variable einen wert hat..eine query ist eine funktion und gibt 1 oder 0 zurück für erfolgreich und nicht erfolgreich, somit hat $check immer einen wert. Deswegen führt deine if abfrage immer das aus wenn $check nicht "empty" ist...

            cya crazypip

            Kommentar

            Lädt...
            X