SelfPHP: & MySQL: Prüfe ob Feld leer ist

Hallo,

wie kann man überprüfen, ob ein Feld in einer MySQL-DB leer ist oder nicht?

Euer
SelfPHP

  1. Hallo,

    wie kann man überprüfen, ob ein Feld in einer MySQL-DB leer ist oder nicht?

    Euer
    SelfPHP

    Schlag mich, aber ich kenne den explizieten Namen nicht genau, aber Du kannst im Result prüfen ob ein angeforderter Wert leer ist oder nicht.

    habs auf die schnelle gefunden:

    if ( ($row=odbc_fetch_row($result))===false )
    Das ganze jetzt für MySQL abändern.

    1. Hi Baesler,

      Schlag mich, aber ich kenne den explizieten Namen nicht genau, aber Du kannst im Result prüfen ob ein angeforderter Wert leer ist oder nicht.

      habs auf die schnelle gefunden:

      if ( ($row=odbc_fetch_row($result))===false )
      Das ganze jetzt für MySQL abändern.

      Kannst du mir das bitte ausführlicher schreibenm, denn ich versteh nur Bahnhof?

      Gruß
      SelfPHP

  2. echo $begrüßung;

    wie kann man überprüfen, ob ein Feld in einer MySQL-DB leer ist oder nicht?

    Definiere "leer". Meinst du damit ein Datum von "0000-00-00 00:00:00" oder einen Leerstring "" oder ein Integerfeld mit 0 oder den Spezialwert NULL? Für die ersten Fälle vergleichst du einfach den Inhalt mit dem von dir als "leer" definierten Wert. Auf NULL kann man nur mit IS NULL bzw. IS NOT NULL prüfen, da normale Operationen (auch Vergleiche) immer NULL ergeben, wenn einer der beteiligten Werte NULL ist.

    Auf PHP-Seite ist das im Prinzip genauso, nur dass hier ein NULL-Wert als null erscheint und mit is_null() überprüft werden muss. Ansonsten verfälscht PHPs eingebaute automatische Typumwandlung bei einigen Werten das Messergebnis.

    echo "$verabschiedung $name";

    1. Hi,

      Definiere "leer". Meinst du damit ein Datum von "0000-00-00 00:00:00" oder einen Leerstring "" oder ein Integerfeld mit 0 oder den Spezialwert NULL?

      Definition zu "leer" in meinem Fall: Leerstring "".

      Für die ersten Fälle vergleichst du einfach den Inhalt mit dem von dir als "leer" definierten Wert.

      Wie soll das gehen? Mein Script fragt dann nach einem Feld ohne Inhalt anhand von WHERE. Das geht doch gar nicht, denn ich habe keine Bedingung für WHERE, oder?

      Gruß
      SelfPHP

      1. Moin SelfPHP,

        Wie soll das gehen? Mein Script fragt dann nach einem Feld ohne Inhalt anhand von WHERE. Das geht doch gar nicht, denn ich habe keine Bedingung für WHERE, oder?

        Du solltest Deine Frage bzw. Deine Zielsetzung präzisieren.

        Möchtest Du eine Ergebismenge bei welcher ein bestimmtest oder mehrere Felder "leer" sind?

        Die WHERE Klausel laute WHERE feld = '' (Felder leer)
        oder
        WHERE feld != ''

        regds
        Mike©

        --
        Freunde kommen und gehen. Feinde sammeln sich an.
  3. Moin SelfPHP,

    Hallo,

    wie kann man überprüfen, ob ein Feld in einer MySQL-DB leer ist oder nicht?

    Möchtest Du das bereits in der WHERE Klausel prüfen, oder
    erst im Ergebnis?

    Für die WHERE Klausel das:
    SELECT * FROM tbl_name WHERE key_col IS NULL; (Ist leer)

    SELECT * FROM tbl_name WHERE key_col <=> NULL; (Ist nicht leer)

    Und für das Ergebnis:

    if ( $Mein_Feld != '' )
       echo 'Ich bin nicht leer';

    regds
    Mike©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
    1. Hi,

      Für die WHERE Klausel das:
      SELECT * FROM tbl_name WHERE key_col IS NULL; (Ist leer)

      Sorry, das habe ich Falsch formuliert. Es soll nicht überprüft werden ob feld leer ist, sondern ob es dieses Feld anhand eines WHERE gibt. Hatte gerade leer im Kopf, da ich eine Variable auf leer prüfen wollte.

      Beispiel:

      Es soll überprüft werden ob $id in irgend einem ID-Feld in der MySQL steht, wenn nicht soll false zurückgegeben werden.

      $result = mysql_query("SELECT * FROM $tabelle WHERE id='$id'", $DP);

      Gruß
      SelfPHP

      1. Moin SelfPHP,

        Es soll überprüft werden ob $id in irgend einem ID-Feld in der MySQL steht, wenn nicht soll false zurückgegeben werden.

        2 Möglichkeiten:

        select count(id) as found from......

        Wenn found == 0 dann kein Treffer

        oder Du benutzt

        mysql_num_rows

        regds
        Mike©

        --
        Freunde kommen und gehen. Feinde sammeln sich an.
        1. Hi,

          mysql_num_rows

          Ich habe jetzt das:

          $result = mysql_query("SELECT * FROM $tabelle WHERE id='$id'", $DP);
          $num_rows = mysql_num_rows($result);
          if ($num_rows == "") {
           return "error_1";
          }

          nur das geht sau sau lam. Was ist falsch?

          Gruß
          SelfPHP

          1. Moin SelfPHP,

            Ich habe jetzt das:

            $result = mysql_query("SELECT * FROM $tabelle WHERE id='$id'", $DP);
            $num_rows = mysql_num_rows($result);
            if ($num_rows == "") {
            return "error_1";
            }

            nur das geht sau sau lam. Was ist falsch?

            1. Was verstehst Du unter "sau lam"?
            2. SELECT * ist daneben. Du möchtest nicht alle Felder selektieren
            3. Dein Ergebnis ist kein String sondern eine Zahl

            Da Du den Weg jetzt kennst, würde ich Dich bitten das SQL Handbuch zu bemühen.

            regds
            Mike©

            --
            Freunde kommen und gehen. Feinde sammeln sich an.
            1. Hi,

              1. Was verstehst Du unter "sau lam"?
              2. SELECT * ist daneben. Du möchtest nicht alle Felder selektieren
              3. Dein Ergebnis ist kein String sondern eine Zahl

              So richtig?

              $result = mysql_query("SELECT name FROM $tabelle WHERE name='$id'", $DP);
              $num_rows = mysql_num_rows($result);
              if ($num_rows == '') {
               return "error_1";
              }

              Wenn ja, immer noch sau lam und es kommt fom FF:
               Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.

              Gruß
              SelfPHP

              1. Moin SelfPHP,

                $result = mysql_query("SELECT name FROM $tabelle WHERE name='$id'", $DP);
                $num_rows = mysql_num_rows($result);
                if ($num_rows == '') {
                return "error_1";
                }

                if ($num_rows == 0)

                regds
                Mike©

                --
                Freunde kommen und gehen. Feinde sammeln sich an.
                1. Hi,

                  if ($num_rows == 0)

                  Danke, klappt super.

                  Gruß
                  SelfPHP