Guma: SQL query -> Wenn Wert == LEER Alternativtext ausg.

Hallo zusammen, bei mir funktioniert gerade folgende Anweisung in PHP nicht. Ich versuche etwas auszugeben, wenn ein Tabellenwert == LEER ist:

// Meine SQL_Abfrage
$loadadressquery = mysql_query("SELECT lage FROM firma WHERE (li_id='$firm_id')");
$loadadress = mysql_fetch_array($loadadressquery);

// Frage ich hier richtig ab:
<? if ($loadadress['lage']=="") print("Lage w&auml;hlen ...") ?>

Leider wird nichts ausgegeben (print gibt nichts aus.)
habe ich:

=="" richtig definiert?

Guten Morgen wünscht Guma

  1. Moin Guma,

    // Meine SQL_Abfrage
    $loadadressquery = mysql_query("SELECT lage FROM firma WHERE (li_id='$firm_id')");

      
    $result = mysql_query($loadadressquery , $db_pointer);  
    $liste=mysql_fetch_array($result)  
      
    $loadadress=$liste['lage'];  
      
    if ( $loadadress == '' )  
       print('Lage w&auml;hlen ...');  
      
    
    

    Guten Morgen wünscht Guma

    Dto.

    regds
    Mike©

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

      danke für die Hilfe, ich weiss jetzt nur nicht was  $db_pointer macht?! benötige ich den dringend?

      Guma

      1. Moin Guma,

        Morgen Mike,

        danke für die Hilfe, ich weiss jetzt nur nicht was  $db_pointer macht?! benötige ich den dringend?

        das ist der Pointer zu Deiner Datenbankverbindung.
        $db_pointer = mysql_connect($HOST, $DB_USER, $DB_PW);

        regds
        Mike©

        --
        Freunde kommen und gehen. Feinde sammeln sich an.
  2. echo $begrüßung;

    Ich versuche etwas auszugeben, wenn ein Tabellenwert == LEER ist:

    Wie definierst du "LEER"? Datenbanken kennen im Allgemeinen nur Leerstrings (String der Länge 0) und NULL-Werte. Strings, die nur Leerzeichen enthalten, sind nicht leer.

    <? if ($loadadress['lage']=="") print("Lage w&auml;hlen ...") ?>
    Leider wird nichts ausgegeben (print gibt nichts aus.)

    Das liegt dann zweifellos daran, dass die Bedingung nicht erfüllt wurde. Hast du geprüft, ob auch das in den Variablen enthalten ist, was du erwartest? echo, print_r() und besonders var_dump() helfen dabei. Letzteres gibt auch den Typ der Variablen mit aus, was oft sehr nützlich ist. Ebenfalls nützlich ist ein <pre> vor einem komplexen Wert (Array, Objekt) auszugeben, das erhöht die Übersichtlichkeit der Darstellung.

    habe ich:
    =="" richtig definiert?

    Das kommt auf das Ergebnis deiner Prüfung an.

    echo "$verabschiedung $name";

    1. Hallo $begrüßung;

      Wie definierst du "LEER"?

      Tabellenwert == NIX drin

      Das kommt auf das Ergebnis deiner Prüfung an.

      Ergebnis ist positiv -> wird ausgegeben.

      Danke für die Hilfestellung Guma

      1. echo $begrüßung;

        Wie definierst du "LEER"?
        Tabellenwert == NIX drin

        Wie ich anschließend ausführte gibt es NIX aus datenbanktechnischer Sicht nicht. Es ist genau definiert, wie das, was du mit NIX/LEER bezeichnest, aussieht.

        • NULL - ein eigener Typ
        • ein Leerstring - Type String, Länge des Inhalts: 0
        • ein String, der Leerzeichen oder anderen unsichtbaren Steuerzeichen enthält.

        Letzteres sieht nur aus wie NIX, ist aber nicht NIX.

        Das kommt auf das Ergebnis deiner Prüfung an.
        Ergebnis ist positiv -> wird ausgegeben.

        Wenn ich das richtig deute, hast du mich nicht verstanden. Ich möchte nicht wissen, was rauskommen soll. Ich wollte, dass du nachsiehst, was tatsächlich in $loadadress['lage'] drin ist. Denn wenn die dem if folgende Anweisung nicht ausgeführt wird, ist sicher im variablen Teil der Bedingung nicht das drin, was du erwartest. Also:

        var_dump($loadadress['lage']);

        Was auch oft hilft, Ungereimtheiten zu erkennen ist ein auf E_ALL gestelltes error_reporting.

        echo "$verabschiedung $name";