Antworten auf deine Fragen:
Neues Thema erstellen

true == false !? *verwirrung*

sdsf

Nicht mehr ganz neu hier

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:
echo "neuer wert: ".$_POST[neuer_wert]." !\n";
if ($_POST[neuer_wert]==true) {
  echo "wert==true\n";
}
if ($_POST[neuer_wert]==false) {
  echo "wert==false\n";
}
if ($_POST[neuer_wert]==1) {
  echo "wert==1\n";
}
if ($_POST[neuer_wert]==0) {
  echo "wert==0\n";
}
if ($_POST[neuer_wert]===true) {
  echo "wert===true\n";
}
if ($_POST[neuer_wert]===false) {
  echo "wert===false\n";
}
if ($_POST[neuer_wert]===1) {
  echo "wert===1\n";
}
if ($_POST[neuer_wert]===0) {
  echo "wert===0\n";
}

Und als Ergebnis kommt folgendes raus:

neuer wert: true !
wert==true
wert==0

neuer wert: false !
wert==true
wert==0

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?
 

cebito

undefined

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:

sdsf

Nicht mehr ganz neu hier

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 ;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.636
Beiträge
1.538.484
Mitglieder
67.559
Neuestes Mitglied
hanuta
Oben