Ik heb verjaardagen van 1 tot/met 5 kinderen in de database zitten.

Als mensen geen kinderen hebben moet er niets op de website verschijnen.

Nu doe ik dit meestal met switch() en dat lukt meestal wel.

Dit keer niet.
In de database staat de kolom voor verjaardag_kind_1 op DATE

Hoe doe ik dit nu goed?
Ik heb er al neer gezet:
== 0,
== 0000-00-00,
== '0000-00-00',
> 0,


<?php
switch (true){
case (($row->verjaardag_kind_5) == 0000-00-00):
echo'';
default:
echo ''.$row->naam_kind_5.':&nbsp;&nbsp;'.$row->verjaardag_kind_5.'';
break;
}
?>
0000-00-00 is een onzinnige datum. Waarom zou je een veld daar default mee vullen?
Jan Koehoorn schreef op 02.01.2007 20:09
0000-00-00 is een onzinnige datum. Waarom zou je een veld daar default mee vullen?


Zit wat in inderdaad, maar dit antwoord lost het probleem van Elsy nog niet op
Jan Koehoorn schreef op 02.01.2007 20:09
0000-00-00 is een onzinnige datum. Waarom zou je een veld daar default mee vullen?


Moet je dan bij "standaard waarde" in de database iets invullen?
DATE kan je op "standaard waarde" zetten met '0000-00-00'. Dan kan je daar op checken.

Edit: Of checken op
SELECT ...... FROM ..... WHERE datumveld < '1900-01-01';
Wil je je query ook even posten, deze lijkt me onhandig...

en het gebruik van switch lijkt mij niet helemaal goed:
(Uit de php manual...)

<?php
switch ($i) {
case 0:
print "i is gelijk aan 0";
break;
case 1:
print "i is gelijk aan 1";
break;
case 2:
print "i is gelijk aan 2";
break;
?>

Op de wijze wat je nu gebruikt is het nog handiger om overal een if...then...else contructie te gebruiken.
Goede morgen allemaal!
Ik heb jullie gisteren wel bezig gehouden.

Na een goed nachtrust en dus weer een frisse kijk op mijn code zie ik ineens wat het probleem is.....

Ik had iedere keer de "default:" vóór de "break;" gezet !

Zo dus:
<?php
switch (true){
case (($row->verjaardag_man) == 0000-00-00):
echo'';
default:
echo ''.$row->voornaam_man.':&nbsp;&nbsp;'.$row->verjaardag_man.'';
break;
}

?>

En nu heb ik dit en dat werkt:

<?php
switch (true){
case (($row->verjaardag_man) == 0000-00-00):
echo'';
break;
default:
echo ''.$row->voornaam_man.':&nbsp;&nbsp;'.$row->verjaardag_man.'';
}
?>

Dus ik ben weer een stukje verder......bedankt allemaal voor het meekijken.
Maar nogsteeds lijkt me dat je het een stuk handiger kan doen...
Wat is je query?
Ik ben bezig met een adressenboek.
Veel dingen moeten dus niet zichtbaar worden als ik ze in de database niet invul.
Ik gebruik alleen deze query boven aan het script.


<?php
if (isset($_GET['naam'])){
$query = 'SELECT * FROM adresboek WHERE adres_id = '.$_GET['naam'].'';
$result = mysql_query($query) or die ("Sorry maar ik kan de adresgegevens niet weergeven");
while ($row = mysql_fetch_object($result)){
?>


<table width="100%"  border="0" align="center" cellpadding="2" cellspacing="0" class="tabeladres">
        	<tr align="center">
        		<td colspan="3"><h2>Verjaardag</h2></td>
        		</tr>
        	<tr>
        		<td width="33%" valign="top" class="tdlinks"><strong>Naam:</strong><br />
            			<?php
						switch (true){
						case (($row->verjaardag_man) == 0000-00-00):
						echo'';
							break;
							default:
							echo ''.$row->voornaam_man.':&nbsp;&nbsp;'.$row->verjaardag_man.'';
							}
							?>
							<br />
							<?php
						switch (true){
						case (($row->verjaardag_vrouw) == 0000-00-00):
						echo'';
							break;
							default:
							echo ''.$row->voornaam_vrouw.':&nbsp;&nbsp;'.$row->verjaardag_vrouw.'';
							}
							?>
							<br />
							<?php
						switch (true){
						case (($row->verjaardag_kind_1) == 0000-00-00):
						echo'';
							break;
							default:
							echo ''.$row->naam_kind_1.':&nbsp;&nbsp;'.$row->verjaardag_kind_1.'';
							}
							?><br />
							<?php
						switch (true){
						case (($row->verjaardag_kind_2) == 0000-00-00):
						echo'';
							break;
							default:
							echo ''.$row->naam_kind_2.':&nbsp;&nbsp;'.$row->verjaardag_kind_2.'';
							}
							?><br />
							<?php
						switch (true){
						case (($row->verjaardag_kind_3) == 0000-00-00):
						echo'';
							break;
							default:
							echo ''.$row->naam_kind_3.':&nbsp;&nbsp;'.$row->verjaardag_kind_3.'';
							}
							?><br />
							<?php
						switch (true){
						case (($row->verjaardag_kind_4) == 0000-00-00):
						echo'';
							break;
							default:
							echo ''.$row->naam_kind_4.':&nbsp;&nbsp;'.$row->verjaardag_kind_4.'';
							}
							?><br />
							<?php
						switch (true){
						case (($row->verjaardag_kind_5) == 0000-00-00):
						echo'';
							break;
							default:
							echo ''.$row->naam_kind_5.':&nbsp;&nbsp;'.$row->verjaardag_kind_5.'';
							}
							?>
			       			</td>
        		<td width="33%" valign="top"><strong>Trouwdag:</strong><br />
            			<?php
					switch(true){
					case(($row->trouwdag) == 0000-00-00):
					echo 'Niet bekend';
						break;
						default:
						echo ''.$row->trouwdag.'';
						}
						?></td>
        		<td width="33%" valign="top"><br />            			</td>
        		</tr>
        	</table>
			<?php
			}
			?>
<table width="100%" border="0" align="center" cellpadding="2" cellspacing="0" class="tabeladres">
<tr align="center">
<td colspan="3"><h2>Verjaardag</h2></td>
</tr>

<tr>
<td width="33%" valign="top" class="tdlinks"><strong>Naam:</strong><br />
<?php
switch (true){
case (($row->verjaardag_man) != 0000-00-00):
echo $row->voornaam_man.':&nbsp;&nbsp;'.$row->verjaardag_man;
break;

case (($row->verjaardag_vrouw) != 0000-00-00):
echo $row->voornaam_vrouw.':&nbsp;&nbsp;'.$row->verjaardag_vrouw;
break;

case (($row->verjaardag_kind_1) != 0000-00-00):
echo $row->naam_kind_1.':&nbsp;&nbsp;'.$row->verjaardag_kind_1;
break;

case (($row->verjaardag_kind_2) != 0000-00-00):
echo $row->naam_kind_2.':&nbsp;&nbsp;'.$row->verjaardag_kind_2;
break;

case (($row->verjaardag_kind_3) != 0000-00-00):
echo $row->naam_kind_3.':&nbsp;&nbsp;'.$row->verjaardag_kind_3;
break;

case (($row->verjaardag_kind_4) != 0000-00-00):
echo $row->naam_kind_4.':&nbsp;&nbsp;'.$row->verjaardag_kind_4;
break;

case (($row->verjaardag_kind_5) != 0000-00-00):
echo $row->naam_kind_5.':&nbsp;&nbsp;'.$row->verjaardag_kind_5;
break;

default:
echo '&nbsp;';
break;
}
?>
</td>
<td width="33%" valign="top"><strong>Trouwdag:</strong><br />
<?php
switch(true){
case(($row->trouwdag) != 0000-00-00):
echo $row->trouwdag;
break;

default:
echo 'Niet bekend';
break;
}
?>
</td>
<td width="33%" valign="top">&nbsp;</td>
</tr>
</table>

@Jim

Op deze manier laat hij alleen de naam en datum van de man zien.

Het is de bedoeling dat er een rij onder elkaar komt van:
Man
Vrouw
Kind (optioneel)
Kind (optioneel)
...

Reageren