switch / case en database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

02/01/2007 19:29:00
Quote Anchor link
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,


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?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;
                            }

                            ?>
 
PHP hulp

PHP hulp

19/11/2024 15:43:27
 
- Jim  -

- Jim -

02/01/2007 19:32:00
Quote Anchor link
van welk type is het veld in je db?
 

02/01/2007 19:44:00
Quote Anchor link
DATE
 
Klaasjan Boven

Klaasjan Boven

02/01/2007 19:50:00
Quote Anchor link
Komt een DATE niet als string terug?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
case (($row->verjaardag_kind_5) == '0000-00-00'):
                        echo'';?>



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
 

02/01/2007 19:52:00
Quote Anchor link
Klaasjan Boven schreef op 02.01.2007 19:50:
Komt een DATE niet als string terug?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
case (($row->verjaardag_kind_5) == '0000-00-00'):
                        echo'';?>


Ik heb het al tussen enkel haakjes of dubbele haakjes gezet.
 
Danny K

Danny K

02/01/2007 19:54:00
Quote Anchor link
Zou je misschien wat meer code kunnen posten?
 

02/01/2007 19:57:00
Quote Anchor link
Natuurlijk.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<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.':&nbsp;&nbsp;'.$row->verjaardag_man.'';
                            break;
                            }

                            
                            ?>

                            <br />
                            <?php
                        switch (true){
                        case ((
$row->verjaardag_vrouw) == ""):
                        echo'';
                            default:

                            echo ''.$row->voornaam_vrouw.':&nbsp;&nbsp;'.$row->verjaardag_vrouw.'';
                            break;
                            }

                            ?>

                            <br />
                            <?php
                        switch (true){
                        case ((
$row->verjaardag_kind_1) == ""):
                        echo'';
                            default:

                            echo ''.$row->naam_kind_1.':&nbsp;&nbsp;'.$row->verjaardag_kind_1.'';
                            break;
                            }

                            ?>
<br />
                            <?php
                        switch (true){
                        case ((
$row->verjaardag_kind_2) == ""):
                        echo'';
                            default:

                            echo ''.$row->naam_kind_2.':&nbsp;&nbsp;'.$row->verjaardag_kind_2.'';
                            break;
                            }

                            ?>
<br />
                            <?php
                        switch (true){
                        case ((
$row->verjaardag_kind_3) == 0):
                        echo'';
                            default:

                            echo ''.$row->naam_kind_3.':&nbsp;&nbsp;'.$row->verjaardag_kind_3.'';
                            break;
                            }

                            ?>
<br />
                            <?php
                        switch (true){
                        case ((
$row->verjaardag_kind_4) == 0):
                        echo'';
                            default:

                            echo ''.$row->naam_kind_4.':&nbsp;&nbsp;'.$row->verjaardag_kind_4.'';
                            break;
                            }

                            ?>
<br />
                            <?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;
                            }

                            ?>

                               </td>
                <td width="33%" valign="top"><strong>Trouwdag:</strong><br />
                        <?php
            echo ''.$row->trouwdag.'';
            ?>
</td>
                <td width="33%" valign="top"><br />                        </td>
                </tr>
            </table>
 
Arjan Kapteijn

Arjan Kapteijn

02/01/2007 19:59:00
Quote Anchor link
SELECT blabla, blablabla FROM tabel WHERE bla IS NOT NULL; of denk ik nu heel fout?
 
Klaasjan Boven

Klaasjan Boven

02/01/2007 20:02:00
Quote Anchor link
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
 

02/01/2007 20:05:00
Quote Anchor link
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.
 
Arjan Kapteijn

Arjan Kapteijn

02/01/2007 20:06:00
Quote Anchor link
WHERE bla IS NOT 0000-00-00, krijgen we dan zoiets werkend?
 
Jan Koehoorn

Jan Koehoorn

02/01/2007 20:09:00
Quote Anchor link
0000-00-00 is een onzinnige datum. Waarom zou je een veld daar default mee vullen?
 
Klaasjan Boven

Klaasjan Boven

02/01/2007 20:20:00
Quote Anchor link
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
 

02/01/2007 22:46:00
Quote Anchor link
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?
 
- SanThe -

- SanThe -

02/01/2007 22:57:00
Quote Anchor link
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';
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
- Jim  -

- Jim -

02/01/2007 23:10:00
Quote Anchor link
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...)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?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.
Gewijzigd op 01/01/1970 01:00:00 door - Jim -
 

03/01/2007 08:53:00
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?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.
 
- Jim  -

- Jim -

03/01/2007 09:04:00
Quote Anchor link
Maar nogsteeds lijkt me dat je het een stuk handiger kan doen...
Wat is je query?
 

03/01/2007 10:19:00
Quote Anchor link
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.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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)){
        ?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<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
            }
            ?>
 
- Jim  -

- Jim -

03/01/2007 10:46:00
Quote Anchor link
<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 />
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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 />
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?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>
 

03/01/2007 11:02:00
Quote Anchor link
@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)
...
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.