Hallo,

Ik heb een jarig-script met personen die vandaag allemaal jarig zijn
Maar nu wil ik achter elke persoon die overleden is een teken (†) geplaatst hebben.

Voorheen werkte het script goed, toen de waarde van het veld Overleden 0000-00-00 was,
als die persoon nog niet was overleden. maar nu zijn die waardes NULL geworden...

Ik heb de volgende code gebruikt:

if ($row["Overleden"] != "0000-00-00" or !isset($row["Overleden"]) or $row["Overleden"] != "NULL") {
   echo "<font color=gray> †</font>";
}


ik krijg nu achter elke persoon dat teken † en niet alleen bij de overleden personen
<?php
if ($row["Overleden"] !== "0000-00-00" OR !empty($row["Overleden"]) OR $row["Overleden"] !== NULL) {
   echo "<span class="grey"> </span>";
}
?>


Wat is gewijzigd?
!= wordt !==
!= "NULL" wordt !== NULL

Dus zonder aanhalingstekens.
Wat zit er in iemands "Overleden" als hij overleden is? Altijd een geldige datum?
Dan zou je sneller met strtotime() kunnen controleren.
Daarbij is <font> achterhaalt en kan je beter <span> gebruiken. Met een class, al is dat ook niet nodig (waarschijnlijk weet je waar deze <span> komt te staan).
Iets als

<?php
if (false !== strtotime($row["Overleden"]) ) {
   echo "<span class="grey"> </span>";
}
?>


Let ook op de Yoda-stijl.
Of je maakt hier (nog) een apart veld voor die enkel een 0 of een 1 bevat.


Zodra je een overlijdensdatum weet, weet je dat hij overleden is...
Je zou wel een 0/1 kunnen krijgen uit de database

SELECT 
	dit, 
	dat, 
	CASE Overleden
		WHEN IS NOT NULL THEN 1
        	ELSE 0
		AS overleden_bool,
	laatste_kolom
FROM ...
Eddy E op 03/10/2015 22:06:37
(but why)

Zodra je een overlijdensdatum weet, weet je dat hij overleden is...
Je zou wel een 0/1 kunnen krijgen uit de database


Omdat het twee verschillende doelen dient: dat iemand is overleden, en wanneer.

Reageren