PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL Null in PHP ausgeben


mc-bain
07.09.2009, 20:11:29
Hallo,

ich habe folgendes Problem.
Wenn ich eine Datenbankabfrage mache, bekomme ich mehrere Datensätze, wovon manche Spalten NULL beinhalten. Will ich diese NULL Werte in einer HTML-Tabelle mit PHP ausgeben, so steht auf der HTML-Seite gar nix.

Meine Abfrage sieht in etwa so aus:

while($row = mysql_fetch_row($result)) {

echo "<td>$row[0]</td>";
echo "<td>$row[1]</td>";
echo "<td>$row[2]</td>";
}



Kann mir jemand sagen, wie ich es schaffe, Mysql-NULL-Werte auch auszugeben, bzw. dass ich es so hinbekomme, dass zumindest eine leere Zelle erscheint anstatt gar nichts?
Vielen Dank.

Gruß
MC

vt1816
07.09.2009, 20:40:53
Dein Stichwort heißt: is_null() (http://de.php.net/manual/de/function.is-null.php).

Warum im Handbuch nach der Lösung suchen, wenn man(n/frau) hier fragen kann...

mc-bain
07.09.2009, 23:42:18
Spüre ich da einen Hauch Zynismus?
Danke für die Antwort, ich kenn is_NULL bereits, da ich das Handbuch schon gewälzt habe. Mein Problem liegt ja auch nicht daran rauszufinden, ob ein NULL vorliegt, sondern es dann in PHP/HTML auszugeben...

feuervogel
07.09.2009, 23:57:34
...ähm...?

was genau willst du denn ausgeben, wenn der wert NULL ist? weil NULL ist nämlich _nichts_, das kann man folglich nicht ausgeben.

mc-bain
08.09.2009, 02:42:30
Wie oben dargestellt, mache ich ne DB Abfrage und gebe das Ergebnis in einer HTML-Tabelle durch PHP Einsatz aus. Nur ist es nun so, dass bei der HTML Tabelle, bei den Datensätzen, indenen ein NULL in der DB vorkommt überhaupt keine Zelle angezeigt wird, sondern nur dort, wo auch Datensätze gefunden wurden. Ich erkläre es mal plump:

Hier meine Ausgabe in HTML/PHP:

while($row = mysql_fetch_row($result)) {

echo "<td>$row[0]</td>";
echo "<td>$row[1]</td>";
echo "<td>$row[2]</td>";
}

Jetzt würde ich gerne so etwas in der Art haben:
while($row = mysql_fetch_row($result)) {
if($row[1]==NULL)
$row[1]=="Frei";



echo "<td>$row[0]</td>";
echo "<td>$row[1]</td>";
echo "<td>$row[2]</td>";
}

Leider Gottes dunktioniert es irgendwie nicht...

CPA
08.09.2009, 08:34:10
Ja und wo ist da nun das Problem? Dann nutz doch auch die Funktion is_null() zur Prüfung:


while($row = mysql_fetch_row($result)) {

if(is_null($row[1]))
$row[1]=="Frei";

echo "<td>$row[0]</td>";
echo "<td>$row[1]</td>";
echo "<td>$row[2]</td>";
}

feuervogel
08.09.2009, 10:35:48
und dass der vergleich in deinem ocde nicht funktioniert, liegt einfach daran, dass mysql-null ungleich php-null ist.