Tom: true & false

Hallo,
hab das mit PHP und Variablen noch nicht ganz durchschaut. Wenn ich eine Variable habe, die nur "true" oder "false" sein kann, muss ich das dann so schreiben: $var = true oder so: $var = "true"? Und muss ich diese Variable irgendwo vorher als Boolean o.ä. definieren? Und noch was: in was für Feld-Typ speichere ich solche Variablen in einer MySQL-Tabelle?
Danke,
Tom

  1. Hallo

    Hmm nein also als Boolean musst du es nicht deklarieren oder aehnliches da bin ich mir sicher und ich glaube das

    $var = true

    gehen muesste bin mir dabei aber nciht sicher habe selbst naemlich gerade erst angefangen das zu lernen.
    Gibt es unter MySql nicht solche Boolean werte ich meine schon oder????

  2. Sup!

    Hallo,
    hab das mit PHP und Variablen noch nicht ganz durchschaut. Wenn ich eine Variable habe, die nur "true" oder "false" sein kann, muss ich das dann so schreiben: $var = true oder so: $var = "true"?

    Ist "true" eine Zeichenkette, oder nicht? Und heisst es dann wohl "true" oder einfach nur true?

    Gruesse,

    Bio

    --
    Ich bin ein Mobber - mein Posting tut mir leid! EHRLICH!!!
  3. Hallo!

    hab das mit PHP und Variablen noch nicht ganz durchschaut. Wenn ich eine Variable habe, die nur "true" oder "false" sein kann, muss ich das dann so schreiben: $var = true oder so: $var = "true"? Und muss ich diese Variable irgendwo vorher als Boolean o.ä. definieren?

    Dem Mann kann geholfen werden:

    Einführung: http://php3.de/manual/de/introduction.php
    kleines Tutorial: http://php3.de/manual/de/tutorial.php

    Grundlagen der Syntax: http://php3.de/manual/de/language.basic-syntax.php
    Typen: http://php3.de/manual/de/language.types.php
    Variablen: http://php3.de/manual/de/language.variables.php
    Ausdrücke: http://php3.de/manual/de/language.expressions.php
    Operatoren: http://php3.de/manual/de/language.operators.php
    Kontrollstrukturen: http://php3.de/manual/de/control-structures.php
    Funktionen: http://php3.de/manual/de/functions.php

    Sicherheit: http://php3.de/manual/de/security.php

    Das sollte man am Anfang einfach mal durchlesen, das sind die absoluten Grundlagen um mit PHP arbeiten zu können.

    Dann solltest Du folgende Bereiche des Manuals kennen um zu wissen wo Du nachschlagen kannst:

    Features: http://php3.de/manual/de/features.php
    Funktionsreferenz: http://php3.de/manual/de/funcref.php

    Viele Grüße
    Andreas

    1. Hallo nochmal!

      Typen: http://php3.de/manual/de/language.types.php

      Du hast dieses Problem da Du nicht diese Seite gelesen hast.

      Grüße
      Andreas

      1. ...auch nochmal hallo,
        Danke für die Links! Das ist, was ich suche!
        Tom

        1. Hi Tom!

          ...auch nochmal hallo,
          Danke für die Links! Das ist, was ich suche!

          Falls Du es nicht gemerkt haben solltest, meine Links entsprachen im Großen und Ganzen dem obersten Teil des offiziellen PHP-Manuals:
          http://php3.de/manual/de/ <- BOOKMARKEN!

          Außerdem solltest Du Dir http://www.php-faq.de/ angucken und bookmarken, darin werde _sehr_ viele Fragen bzgl.PHP beantwortet!

          Viele Grüße
          Andreas

  4. Moin,
    1. true und false sind eigene Datentypen, die du im Gegensatz zu anderen
    Sprachen  bei PHP nicht vorher als boolean deklarieren mußt. Würdest du
    true oder false in Anfuehrungszeichen setzen, waere dieser Datentyp auf
    einmal ein String (genauso wuerde aus einem integer auf einmal ein String,
    wenn du ihn in Hochkommas setzt). Dann braeuchtest du aber nicht mehr true
    oder false schreiben und darauf pruefen, sondern koenntest stattdessen auch
    z.B. "ok" oder "falsch" nehmen. Damit verloere die Deklaration als boolean
    aber jeglichen Sinn.

    2. Unter MySQL kannst du den Typ der Spalte festlegen z.B. als integer,
    char, datum oder auch als boolean.

    Gruss Ralf

    1. Damit verloere die Deklaration als boolean

      Quatsch dass.
      Die Definition ueber z.B. $x = "true"; ist gemeint.

      Gruss
      Ralf

    2. Hallo,

      1. true und false sind eigene Datentypen, ...

      ...OK, das hab ich begriffen, Danke!

      1. Unter MySQL kannst du den Typ der Spalte festlegen z.B. als integer,
        char, datum oder auch als boolean.

      ...ja, danach habe ich gesucht - zunächst aber nur im phpMyAdmin. Und da gibt es "BOOLEAN" nicht (im Pulldown-Menü, wo man den Spalten-Typ festlegen kann).

      Tom

      1. ...ja, danach habe ich gesucht - zunächst aber nur im phpMyAdmin. Und da gibt es "BOOLEAN" nicht (im Pulldown-Menü, wo man den Spalten-Typ festlegen kann).

        Ja. Du musst ein bisschen tricksen und kannst stattdessen auf 0 oder 1
        prüfen, d.h. du legst die Spalte als tinyint fest und prüfst dann auf
        diese Werte.
        Oder du legst dieses fest: char(0). Dann kannst du entweder einen
        leeren String da eintragen oder es steht NULL drin und du prüfst dann
        auf IS NULL oder IS NOT NULL.
        Ist dann beides nicht direkt ein boolean Wert, führt aber zum gleichen
        Ergebnis.

        Gruss
        Ralf

        1. nochmal hallo,

          Ja. Du musst ein bisschen tricksen und kannst stattdessen auf 0 oder 1
          prüfen, d.h. du legst die Spalte als tinyint fest und prüfst dann auf
          diese Werte.

          OK, wenn ich das richtig sehe, muss ich dann erst mal meine Variablen umändern, oder?
          Also z.B. so:
          if ($bool_var == true) $int_var = 0; else $int_var = 1;
          ...und dann $int_var als TINYINT in die DB eintragen?

          Tom

          1. if ($bool_var == true) $int_var = 0; else $int_var = 1;
            ...und dann $int_var als TINYINT in die DB eintragen?

            Ja genau. Und dann spaeter eben auf 0 und 1 pruefen. Was ich eben auch
            noch vergass, war die Erklaerung, die ich aber nicht 100% sicher weiss
            und mich deshalb gerne eines besseren belehren lasse:
            MySQL kennt zwar BOOL als Spaltentyp, interpretiert den aber intern als
            0 und 1 (ich vermute mal ein typedef bei der Entwicklung). Deshalb
            haben (auch nur Vermutung) wahrscheinlich die PHPMyAdmin Leute drauf
            verzeichtet, dass als Spaltentyp anzugeben, denn wenn es sowieso als
            tinyint beackert wird, kann mans ja auch gleich so machen.

            Gruss
            Ralf

      2. Moin!

        1. Unter MySQL kannst du den Typ der Spalte festlegen z.B. als integer,
          char, datum oder auch als boolean.
          ...ja, danach habe ich gesucht - zunächst aber nur im phpMyAdmin. Und da gibt es "BOOLEAN" nicht (im Pulldown-Menü, wo man den Spalten-Typ festlegen kann).

        Nimm "enum" als Typ und gib die möglichen Werte an, die du erlauben willst (beispielsweise "true" und "false").

        Enum als Spaltenfeld erlaubt dir, eine Liste von erlaubten Werten anzugeben, von denen bei einem Datensatz jeweils nur ein einziger gesetzt sein kann. Dein Boolean-Problem würde also zwei Werte erlauben.

        Außerdem gibts noch "set" als Spaltentyp. Hierbei definierst du wiederum die möglichen Werte, es dürfen aber mehrere dieser Werte gesetzt sein.

        Natürlich kannst du deine Boolean-Information in einem beliebigen Datentyp speichern. Du kannst die Strings "true" und "false" in ein Textfeld speichern, du kannst 0 und 1 in einem Zahlenfeld speichern, auch ein Datumsfeld ließe sich entsprechend umbiegen - enum ist in meinen Augen aber das sinnvollste, weil es wirklich _nur_ die definierten Werte annimmt - du hast also immer definierte Daten.

        - Sven Rautenberg

        --
        "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)