Anzeige

true == false !? *verwirrung*

true == false !? *verwirrung* | PSD-Tutorials.de

Erstellt von sdsf, 03.07.2011.

  1. sdsf

    sdsf Nicht mehr ganz neu hier

    Dabei seit:
    02.12.2007
    Beiträge:
    51
    Geschlecht:
    männlich
    Ort:
    Darmstadt
    Software:
    Photoshop 7.0, Eclipse, PsPad, PHP, MySQL, JavaScript, AJAX, Jquery, ...
    Kameratyp:
    EOS 450 D
    true == false !? *verwirrung*
    Hi!

    Ich hab ein Problem mit true, false, 1,0 ,...

    Habe ein INT-DB-Feld das ich mit 1 oder 0 gefüllt habe.
    Nun hab ich ein Skript, mit dem ich einfach die Datenbank bearbeiten kann.
    Das Skript gibt mir bei einem Checkbox-Feld nur TRUE oder FALSE zurück.
    Klar, das ich das so nicht in ein INT-Feld speichern kann.
    Also wollte ich TRUE -> 1 und FALSE -> 0 ändern.

    Und jetzt fängt das Problem an.
    Habe mit folgendem Code getestet:

    PHP:
    1.  
    2. echo "neuer wert: ".$_POST[neuer_wert]." !\n";
    3. if ($_POST[neuer_wert]==true) {
    4.   echo "wert==true\n";
    5. }
    6. if ($_POST[neuer_wert]==false) {
    7.   echo "wert==false\n";
    8. }
    9. if ($_POST[neuer_wert]==1) {
    10.   echo "wert==1\n";
    11. }
    12. if ($_POST[neuer_wert]==0) {
    13.   echo "wert==0\n";
    14. }
    15. if ($_POST[neuer_wert]===true) {
    16.   echo "wert===true\n";
    17. }
    18. if ($_POST[neuer_wert]===false) {
    19.   echo "wert===false\n";
    20. }
    21. if ($_POST[neuer_wert]===1) {
    22.   echo "wert===1\n";
    23. }
    24. if ($_POST[neuer_wert]===0) {
    25.   echo "wert===0\n";
    26. }
    27.  
    Und als Ergebnis kommt folgendes raus:

    Was mache ich falsch?
    Kann doch nicht sein, das false == true ist ^^
    Wie kann ich das TRUE, bzw FALSE richtig erkennen und jeweils in 1, bzw 0 ändern?
     
    #1      
  2. cebito

    cebito undefined

    262
    Dabei seit:
    08.03.2008
    Beiträge:
    8.316
    Geschlecht:
    männlich
    Ort:
    Dresden
    Kameratyp:
    zum durchgucken
    true == false !? *verwirrung*
    AW: true == false !? *verwirrung*

    Was schreibst du denn in $_POST[neuer_wert]? Einen String! Deshalb bekommst du auch diesen String (true oder false) bei echo $_POST[neuer_wert]; ausgegeben, normalerweise 0 oder 1 bzw. gar nichts oder 1 je nach dem, ob du die boolsche Variable mit 0 oder 1 oder mit true oder false belegst. Bei deiner Überprüfung jedoch schaust du, ob die Variable $_POST[neuer_wert] true oder false ist, soll heißen, du schaust ob sie mit einem Wert ungleich null belegt ist oder nicht. Ist das der Fall, bekommst du True zurückgeliefert, auch wenn ein false-String in der Variable ist. Nur wenn die Variable 0 oder leer ist (ein String gehört da nicht zu), liefert deine Abfrage false.
     
    Zuletzt bearbeitet: 03.07.2011
    #2      
  3. fakerer

    fakerer Aktives Mitglied

    Dabei seit:
    03.08.2008
    Beiträge:
    804
    Geschlecht:
    männlich
    true == false !? *verwirrung*
    AW: true == false !? *verwirrung*

    wenn deine variable neuer wert heisst musst du

    $_POST['neuer_wert'] nehmen
     
    #3      
  4. sdsf

    sdsf Nicht mehr ganz neu hier

    Dabei seit:
    02.12.2007
    Beiträge:
    51
    Geschlecht:
    männlich
    Ort:
    Darmstadt
    Software:
    Photoshop 7.0, Eclipse, PsPad, PHP, MySQL, JavaScript, AJAX, Jquery, ...
    Kameratyp:
    EOS 450 D
    true == false !? *verwirrung*
    AW: true == false !? *verwirrung*

    oh man! Natürlich!
    Ich dachte, er speichert es als bool, und nicht als string.
    Mit
    if ($_POST['neuer_wert']=="true")
    erkennt er jetzt richtig, ob es true oder false ist!
    thx!

    @fakerer
    muss ich nicht. Gibt zwar ein Warning im log, aber funktioniert dennoch ;)
     
    #4      
x
×
×