Leeftijd uit DB kiezen
Keuze optie heb ik als volgt,
Code (php)
1
2
3
4
5
6
7
8
9
10
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>
<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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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 ."";
}
?>
$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 ."";
}
?>
Code (php)
eens in
Maar welke keuze ik ook maak, het geeft geen output en geen foutmelding.
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
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 . "";
?>
$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 . "";
?>
als je alle jaartallen los invoerd met de bijbehorende leeftijds groep heb je ook weining kans op errors
Zo te zien heb jij een getal als leeftijd in de database staan. Dat lijkt mij zeer onpraktisch. Gebruik daar een geboortedatum voor.
Het gaat mij om het jaartal.
Het moet eigenlijk zijn,
elseif ($_POST['jaar'] == "1955 t/m 1946") {
Maar ik krijg nul output.
Echo de query eens.
WHERE jaar BETWEEN 1976 AND 1966
Draai de $vars eens om in de query. Nu staat het hoogste getal als eerste. Dat moet als laatste neem ik aan.
Bedankt. Ik kan weer rustig slapen ;-)