Leeftijd uit DB kiezen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick Bdo

Patrick Bdo

18/10/2010 17:58:37
Quote Anchor link
Ik wil graag d.m.v. een formulier leeftijd laten kiezen uit DB van ledenbestand.

Keuze optie heb ik als volgt,
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<select id="jaar" name="jaar">
    <option>Kies leeftijd</option>
<?php
    $jaar
= array ("15 t/m 24 jaar", "25 t/m 34 jaar", "35 t/m 44 jaar", "45 t/m 54 jaar", "55 t/m 64 jaar", "65 jaar en ouder");
    
    for ($i = 1; $i <= 6; $i++) {
    echo "<option value=\"" . $jaar[$i - 1] . "\">" . $jaar[$i - 1] . "</option>";
    }

?>

</select>


Uitkomst na keuze geeft netjes, 25 t/m 34 jaar

Maar hoe vergelijk nu 25 t/m 34 jaar met bijv. 1980 uit DB?

Ik zit hier aan te denken, maar kom niet verder
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
<?php
$leeftijd_1
= date(Y)- 15;
$leeftijd_2 = date(Y)- 25;
$leeftijd_3 = date(Y)- 34;
$leeftijd_4 = date(Y)- 44;
$leeftijd_5 = date(Y)- 54;

if ($_POST['jaar'] == "15 t/m 24 jaar") {
    $query = "SELECT leeftijd FROM table WHERE leeftijd >= " . $leeftijd_1 . " AND leeftijd <= " . $leeftijd_2 ."";
    }

elseif ($_POST['jaar'] == "25 t/m 34 jaar") {
    $query = "SELECT leeftijd FROM table WHERE leeftijd >= " . $leeftijd_2 . " AND leeftijd <= " . $leeftijd_3 ."";
    }

elseif ($_POST['jaar'] == "35 t/m 44 jaar") {
    $query = "SELECT leeftijd FROM table WHERE leeftijd >= " . $leeftijd_3 . " AND leeftijd <= " . $leeftijd_4 ."";
    }

elseif ($_POST['jaar'] == "45 t/m 54 jaar") {
    $query = "SELECT leeftijd FROM table WHERE leeftijd >= " . $leeftijd_4 . " AND leeftijd <= " . $leeftijd_5 ."";
    }

?>
 
PHP hulp

PHP hulp

03/12/2021 02:42:59
 
Carlo  boy

carlo boy

18/10/2010 18:12:56
Quote Anchor link
verander dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$leeftijd_1
= date(Y)- 15;
$leeftijd_2 = date(Y)- 25;
$leeftijd_3 = date(Y)- 34;
$leeftijd_4 = date(Y)- 44;
$leeftijd_5 = date(Y)- 54;
?>


eens in
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php

$leeftijd_1
= date("Y")- 15;
$leeftijd_2 = date("Y")- 25;
$leeftijd_3 = date("Y")- 34;
$leeftijd_4 = date("Y")- 44;
$leeftijd_5 = date("Y")- 54;
?>
 
Patrick Bdo

Patrick Bdo

18/10/2010 20:38:52
Quote Anchor link
In DB staat 1969.
Maar welke keuze ik ook maak, het geeft geen output en geen foutmelding.

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
<?php
$leeftijd_1
= date("Y")- 14;
$leeftijd_2 = date("Y")- 24;
$leeftijd_3 = date("Y")- 34;
$leeftijd_4 = date("Y")- 44;
$leeftijd_5 = date("Y")- 54;
$leeftijd_6 = date("Y")- 64;

if ($_POST['jaar'] == "15 t/m 24 jaar") {
    $query = "WHERE  jaar BETWEEN  " . $leeftijd_1 . " AND " . $leeftijd_2 ."";
    }

elseif ($_POST['jaar'] == "25 t/m 34 jaar") {
    $query = "WHERE  jaar BETWEEN  " . $leeftijd_2 . " AND " . $leeftijd_3 ."";
    }

elseif ($_POST['jaar']r == "35 t/m 44 jaar") {
    $query = "WHERE  jaar BETWEEN  " . $leeftijd_3 . " AND " . $leeftijd_4 ."";
    }

elseif ($_POST['jaar'] == "45 t/m 54 jaar") {
    $query = "WHERE  jaar BETWEEN  " . $leeftijd_4 . " AND " . $leeftijd_5 ."";
    }

elseif ($_POST['jaar'] == "55 t/m 64 jaar") {
    $query = "WHERE  jaar BETWEEN  " . $leeftijd_5 . " AND " . $leeftijd_6 ."";
    }

elseif ($_POST['jaar'] == "65 jaar en ouder") {
    $query = "WHERE  jaar >= " . $leeftijd_6 . "";
    }


$aQuery    = "SELECT id, naam, jaar FROM leden " . $query . "";

?>
 
Rick  -

Rick -

18/10/2010 20:42:25
Quote Anchor link
als je alle jaartallen los invoerd met de bijbehorende leeftijds groep heb je ook weining kans op errors
 
- SanThe -

- SanThe -

18/10/2010 20:52:17
Quote Anchor link
Zo te zien heb jij een getal als leeftijd in de database staan. Dat lijkt mij zeer onpraktisch. Gebruik daar een geboortedatum voor.
 
Patrick Bdo

Patrick Bdo

18/10/2010 21:09:34
Quote Anchor link
getal in DB is het jaartal 1969
Het gaat mij om het jaartal.

Het moet eigenlijk zijn,
elseif ($_POST['jaar'] == "1955 t/m 1946") {

Maar ik krijg nul output.
 
- SanThe -

- SanThe -

18/10/2010 21:28:39
Quote Anchor link
Echo de query eens.
 
Patrick Bdo

Patrick Bdo

18/10/2010 21:39:14
Quote Anchor link
WHERE jaar BETWEEN 1976 AND 1966
 
- SanThe -

- SanThe -

18/10/2010 21:45:03
Quote Anchor link
Draai de $vars eens om in de query. Nu staat het hoogste getal als eerste. Dat moet als laatste neem ik aan.
 
Patrick Bdo

Patrick Bdo

18/10/2010 21:55:21
Quote Anchor link
Bedankt. Ik kan weer rustig slapen ;-)
 



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.