Unterschied zwischen == 1 und != 0 ?

  • Hi,
    bin gerade aus langeweile dabei ein Gästebuch zu programmieren und hab dabei ein recht merkwürdiges Problem... :/

    Ich will einen Datensatz, einen Gästebucheintag, auslesen wenn dieser gecheckt wurde. Also wenn ein Admin den Eintrag aktiviert sozusagen. Dazu hab ich in der Tabelle die Spalte "check" mit 1 oder 0.
    1 = Eintrag wird angezeigt
    0 = Eintrag wird nicht angezeigt
    Diese check Funktion kann man über eine config.php aktivieren und deaktivieren.

    Das ganze hab ich so gelöst:


    Nun bekomme ich hier die Fehlermeldung
    mysql_fetch_array(): supplied argument is not a valid MySQL result resource... bla bla on line 25

    Wenn ich die If-Abfrage aber doppelt negiere quasi, also aus "==" ein "!=" und aus "check = 1" ein "check = 0" mache...

    Code
    if ($function_check != 1) {
    	$sql .= " WHERE check = 0";
    }

    ...dann funktionierts und ich bekomme meinen Datensatz ausgegeben.

    Ich könnte es zwar einfach so lassen aber trotzdem interessiert mich natürlich warum das so ist.
    weiß das jemand?
    MfG Markus

    EDIT: Mir fällt gerade selber auf, dass bei meiner zweiten Variante ja einfach alles ausgegeben wird wenn die Funktion an ist.
    :/ Hm... aber das klärt ja nicht warum das erste nicht geht...

  • Es gibt keinen Rest vom Query.
    Ich kann den String auch einfach per echo ausgeben lassen.
    Dann bekomme ich ihn auch richtig angezeigt:
    SELECT * FROM entries WHERE check = 1
    Daran ist doch nichts falsch, oder?!
    Mach das ja schließlich auch nicht zum ersten mal... :/

  • Hö? Was soll ich denn bei pma eingeben? Es geht mir doch um die Ausgabe.
    Und der Query ist auf jedenfall auch richtig meiner Meinung nach.
    Vllt irgenteine Einstellungssache oder die Tabelle irgentwie falsch angelegt... oder vielleicht auch ein ganz banaler Fehler den ich übersehe...
    EDIT: Ach ja, das Feld ist selbstverständlich INT ;)

  • Zitat von d4f

    kann es sein dass 'entries' ein MySQL-Kommando ist? ^^ (oder zumindest ein reserviertes Wort)

    Dann würde es aber ohne die If-Abfrage auch nicht gehen. Aber das tuts. ;)