itil-harry
Goto Top

Problem mit Funktion empty()

Finde keine Funktion, die das zurückliefert, was ich will

Hi @ all,

dies ist ein Anfängerproblem und ich dachte eigentlich nicht, dass mir das solche Schwierigkeiten macht:

habe eine Webseite, auf der ich Fussballergebnisse ausgebe. Mit empty() versuche ich zu prüfen, ob bereits ein Ergebnis eingegeben wurde.
Falls nicht, steht in der MySQL-DB NULL drin. die 0 ist hierbei falsch, da ein Spiel ja auch 0:irgendwas ausgehen kann.
Das komplette Ergebnis abzufragen bringt auch nichts, weil ein Spiel ja auch 0:0 ausgehen kann (soll ja mal vorkomen):

Leider liefert empty() auch dann TRUE, wenn das Datenfeld eine 0 beinhaltet.
Weiss hier jemand eine Funktion, die für ein leeres Feld nur dann TRUE liefert, wenn das Feld tatsächlich NULL ist ?

Bei selfphp hab ich leider nichts entsprechendes gefunden.

Danke und Gruß
ITIL-Harry

Content-Key: 134541

Url: https://administrator.de/contentid/134541

Printed on: April 24, 2024 at 04:04 o'clock

Member: Arano
Arano Jan 27, 2010 at 23:21:18 (UTC)
Goto Top
Hallo ITIL-Harry,

ich kenne eine Funktion, sie nenne sich PHP-Manual - is_null().
Alternativ dazu könntest du das auch in einer Bedingung prüfen wenn du anstelle von "==", "===" verwendest, dann wird nämlich auch der Type verglichen:
<?php

$var1 = 0;
if(NULL ==  $var1) echo '$var1 ==  NULL'.PHP_EOL;  
if(NULL === $var1) echo '$var1 === NULL'.PHP_EOL;  
// Ausgabe:
// $var1 ==  NULL

$var2 = NULL;
if(NULL ==  $var2) echo '$var2 ==  NULL'.PHP_EOL;  
if(NULL === $var2) echo '$var2 === NULL'.PHP_EOL;  
// Ausgabe:
// $var2 ==  NULL
// $var2 === NULL

?>

~Arano
Member: nxclass
nxclass Jan 28, 2010 at 08:10:53 (UTC)
Goto Top
isset() sollte auch funktionieren.

Aber wie wäre es wenn deine SQL Abfrage schon 'n/a' zurück liefert ?
SELECT ... IF( `spalte` IS NULL, 'n/a', `spalte`) ...
Member: Arano
Arano Jan 28, 2010 at 10:18:58 (UTC)
Goto Top
Zitat von @nxclass:
isset() sollte auch funktionieren.
Nee, ich glaube hier nicht !
Zitat von php.net/isset:
isset — Determine if a variable is set and is not NULL
Er wollte ja auf genau NULL geprüft haben face-wink
Außerdem sollte man wenn man den INHALT einer Variablen prüfen möchte die entsprechenden Funktionen verwenden (sofern es sie gibt) und nicht mit anderen. Schließlich wird mit isset() die Existenz der Variable überprüft.


~Arano
Member: ITIL-Harry
ITIL-Harry Jan 28, 2010 at 12:46:41 (UTC)
Goto Top
Danke, genau das wars

Warum finde ich so einen einfachen und sprechnden Funktionsnamen wie "is_null()" nicht --- muss blind gewesen sein !!!

Vielen Dank !!!

Gruß
ITIL-Harry