switch / case en database
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,
van welk type is het veld in je db?
DATE
EDIT moet op zich wel werken denk ik want ik gebruik in al mijn tabellen een datum_einde. Dus mijn sqlletjes eindigen altijd op
AND datum_einde <>'0000-00-00'
en dat werkt altijd prima
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
Klaasjan Boven schreef op 02.01.2007 19:50:
Komt een DATE niet als string terug?
Ik heb het al tussen enkel haakjes of dubbele haakjes gezet.
Zou je misschien wat meer code kunnen posten?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<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) == ""):
echo'';
default:
echo ''.$row->voornaam_man.': '.$row->verjaardag_man.'';
break;
}
?>
<br />
<?php
switch (true){
case (($row->verjaardag_vrouw) == ""):
echo'';
default:
echo ''.$row->voornaam_vrouw.': '.$row->verjaardag_vrouw.'';
break;
}
?>
<br />
<?php
switch (true){
case (($row->verjaardag_kind_1) == ""):
echo'';
default:
echo ''.$row->naam_kind_1.': '.$row->verjaardag_kind_1.'';
break;
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_2) == ""):
echo'';
default:
echo ''.$row->naam_kind_2.': '.$row->verjaardag_kind_2.'';
break;
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_3) == 0):
echo'';
default:
echo ''.$row->naam_kind_3.': '.$row->verjaardag_kind_3.'';
break;
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_4) == 0):
echo'';
default:
echo ''.$row->naam_kind_4.': '.$row->verjaardag_kind_4.'';
break;
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_5) == '0000-00-00'):
echo'';
default:
echo ''.$row->naam_kind_5.': '.$row->verjaardag_kind_5.'';
break;
}
?>
</td>
<td width="33%" valign="top"><strong>Trouwdag:</strong><br />
<?php
echo ''.$row->trouwdag.'';
?></td>
<td width="33%" valign="top"><br /> </td>
</tr>
</table>
<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) == ""):
echo'';
default:
echo ''.$row->voornaam_man.': '.$row->verjaardag_man.'';
break;
}
?>
<br />
<?php
switch (true){
case (($row->verjaardag_vrouw) == ""):
echo'';
default:
echo ''.$row->voornaam_vrouw.': '.$row->verjaardag_vrouw.'';
break;
}
?>
<br />
<?php
switch (true){
case (($row->verjaardag_kind_1) == ""):
echo'';
default:
echo ''.$row->naam_kind_1.': '.$row->verjaardag_kind_1.'';
break;
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_2) == ""):
echo'';
default:
echo ''.$row->naam_kind_2.': '.$row->verjaardag_kind_2.'';
break;
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_3) == 0):
echo'';
default:
echo ''.$row->naam_kind_3.': '.$row->verjaardag_kind_3.'';
break;
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_4) == 0):
echo'';
default:
echo ''.$row->naam_kind_4.': '.$row->verjaardag_kind_4.'';
break;
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_5) == '0000-00-00'):
echo'';
default:
echo ''.$row->naam_kind_5.': '.$row->verjaardag_kind_5.'';
break;
}
?>
</td>
<td width="33%" valign="top"><strong>Trouwdag:</strong><br />
<?php
echo ''.$row->trouwdag.'';
?></td>
<td width="33%" valign="top"><br /> </td>
</tr>
</table>
SELECT blabla, blablabla FROM tabel WHERE bla IS NOT NULL; of denk ik nu heel fout?
Jij denkt heel fout Arjan. Als een veld een date is wordt hij ( bij mij althans )default gevuld met 0000-00-00, tenzij Elsy het veld expliciet NULL heeft gegeven
Klaasjan Boven schreef op 02.01.2007 20:02:
Jij denkt heel fout Arjan. Als een veld een date is wordt hij ( bij mij althans )default gevuld met 0000-00-00, tenzij Elsy het veld expliciet NULL heeft gegeven
Klopt, bij mij staat dat er ook in.
WHERE bla IS NOT 0000-00-00, krijgen we dan zoiets werkend?
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?
Edit: Of checken op
SELECT ...... FROM ..... WHERE datumveld < '1900-01-01';
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
en het gebruik van switch lijkt mij niet helemaal goed:
(Uit de php manual...)
Code (php)
Op de wijze wat je nu gebruikt is het nog handiger om overal een if...then...else contructie te gebruiken.
Gewijzigd op 01/01/1970 01:00:00 door - Jim -
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:
Code (php)
En nu heb ik dit en dat werkt:
Code (php)
Dus ik ben weer een stukje verder......bedankt allemaal voor het meekijken.
Wat is je query?
Veel dingen moeten dus niet zichtbaar worden als ik ze in de database niet invul.
Ik gebruik alleen deze query boven aan het script.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?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)){
?>
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)){
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<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.': '.$row->verjaardag_man.'';
}
?>
<br />
<?php
switch (true){
case (($row->verjaardag_vrouw) == 0000-00-00):
echo'';
break;
default:
echo ''.$row->voornaam_vrouw.': '.$row->verjaardag_vrouw.'';
}
?>
<br />
<?php
switch (true){
case (($row->verjaardag_kind_1) == 0000-00-00):
echo'';
break;
default:
echo ''.$row->naam_kind_1.': '.$row->verjaardag_kind_1.'';
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_2) == 0000-00-00):
echo'';
break;
default:
echo ''.$row->naam_kind_2.': '.$row->verjaardag_kind_2.'';
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_3) == 0000-00-00):
echo'';
break;
default:
echo ''.$row->naam_kind_3.': '.$row->verjaardag_kind_3.'';
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_4) == 0000-00-00):
echo'';
break;
default:
echo ''.$row->naam_kind_4.': '.$row->verjaardag_kind_4.'';
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_5) == 0000-00-00):
echo'';
break;
default:
echo ''.$row->naam_kind_5.': '.$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
}
?>
<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.': '.$row->verjaardag_man.'';
}
?>
<br />
<?php
switch (true){
case (($row->verjaardag_vrouw) == 0000-00-00):
echo'';
break;
default:
echo ''.$row->voornaam_vrouw.': '.$row->verjaardag_vrouw.'';
}
?>
<br />
<?php
switch (true){
case (($row->verjaardag_kind_1) == 0000-00-00):
echo'';
break;
default:
echo ''.$row->naam_kind_1.': '.$row->verjaardag_kind_1.'';
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_2) == 0000-00-00):
echo'';
break;
default:
echo ''.$row->naam_kind_2.': '.$row->verjaardag_kind_2.'';
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_3) == 0000-00-00):
echo'';
break;
default:
echo ''.$row->naam_kind_3.': '.$row->verjaardag_kind_3.'';
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_4) == 0000-00-00):
echo'';
break;
default:
echo ''.$row->naam_kind_4.': '.$row->verjaardag_kind_4.'';
}
?><br />
<?php
switch (true){
case (($row->verjaardag_kind_5) == 0000-00-00):
echo'';
break;
default:
echo ''.$row->naam_kind_5.': '.$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
}
?>
<tr align="center">
<td colspan="3"><h2>Verjaardag</h2></td>
</tr>
<tr>
<td width="33%" valign="top" class="tdlinks"><strong>Naam:</strong><br />
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
switch (true){
case (($row->verjaardag_man) != 0000-00-00):
echo $row->voornaam_man.': '.$row->verjaardag_man;
break;
case (($row->verjaardag_vrouw) != 0000-00-00):
echo $row->voornaam_vrouw.': '.$row->verjaardag_vrouw;
break;
case (($row->verjaardag_kind_1) != 0000-00-00):
echo $row->naam_kind_1.': '.$row->verjaardag_kind_1;
break;
case (($row->verjaardag_kind_2) != 0000-00-00):
echo $row->naam_kind_2.': '.$row->verjaardag_kind_2;
break;
case (($row->verjaardag_kind_3) != 0000-00-00):
echo $row->naam_kind_3.': '.$row->verjaardag_kind_3;
break;
case (($row->verjaardag_kind_4) != 0000-00-00):
echo $row->naam_kind_4.': '.$row->verjaardag_kind_4;
break;
case (($row->verjaardag_kind_5) != 0000-00-00):
echo $row->naam_kind_5.': '.$row->verjaardag_kind_5;
break;
default:
echo ' ';
break;
}
?>
switch (true){
case (($row->verjaardag_man) != 0000-00-00):
echo $row->voornaam_man.': '.$row->verjaardag_man;
break;
case (($row->verjaardag_vrouw) != 0000-00-00):
echo $row->voornaam_vrouw.': '.$row->verjaardag_vrouw;
break;
case (($row->verjaardag_kind_1) != 0000-00-00):
echo $row->naam_kind_1.': '.$row->verjaardag_kind_1;
break;
case (($row->verjaardag_kind_2) != 0000-00-00):
echo $row->naam_kind_2.': '.$row->verjaardag_kind_2;
break;
case (($row->verjaardag_kind_3) != 0000-00-00):
echo $row->naam_kind_3.': '.$row->verjaardag_kind_3;
break;
case (($row->verjaardag_kind_4) != 0000-00-00):
echo $row->naam_kind_4.': '.$row->verjaardag_kind_4;
break;
case (($row->verjaardag_kind_5) != 0000-00-00):
echo $row->naam_kind_5.': '.$row->verjaardag_kind_5;
break;
default:
echo ' ';
break;
}
?>
</td>
<td width="33%" valign="top"><strong>Trouwdag:</strong><br />
Code (php)
</td>
<td width="33%" valign="top"> </td>
</tr>
</table>
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)
...