selecteren op dag en maand
Op aanraden van Blanche ben ik op www.phptuts.nl even goed gaan bekijken hoe alles netjes miet gecoded worden en het is erg leerzaam.
Nu heb ik voor de leden van de club een database met namen en geboortedatums.
Nu wil ik graag dat wanneer zij jarig zijn dit op de website verschijnt.
Ik heb het volgende scriptje geschreven wat een fout opleverd omdat ik gewoon niet weet hoe ik de dag en de maand moet selecteren.
Alleen NOW() werkt niet wnat dat zou betekenen dat ze vandaag geboren zouden moeten zijn.
IK heb gezocht maar kan het niet vinden, wie kan mij helpen?
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
require_once 'db_config.php';
$sql = "SELECT
voornaam,
achternaam,
DATE_FORMAT(geboortedatum, '%d-%m-%Y') AS datum
FROM
ledenlijst
WHERE
(geboortedatum, '%d AND %m) = NOW()
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0)
{
echo 'Jammer, maar geen taart vandaag';
}
else
{
while($row = mysql_fetch_assoc($res))
{
echo $row['voornaam']. $row['achternaam'];
}
}
?>
require_once 'db_config.php';
$sql = "SELECT
voornaam,
achternaam,
DATE_FORMAT(geboortedatum, '%d-%m-%Y') AS datum
FROM
ledenlijst
WHERE
(geboortedatum, '%d AND %m) = NOW()
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0)
{
echo 'Jammer, maar geen taart vandaag';
}
else
{
while($row = mysql_fetch_assoc($res))
{
echo $row['voornaam']. $row['achternaam'];
}
}
?>
Peter Arendse schreef op 14.01.2009 14:05:
In dat geval hoef je niet de gehele geboortedatum te selecteren, maar enkel de dag en de maand waarin ze geboren zijn. Dan weet je wanneer er iemand jarig is.Nu wil ik graag dat wanneer zij jarig zijn dit op de website verschijnt.
Om degenen die vandaag jarig zijn te selecteren, zul je dus ook de vergelijking op dag en maand uit moeten voeren:
Maar Blanche, is het ook mogelijk om er achter te zetten hoe oud ze gweorden zijn? En hoe bouw je dat dan op?
Misschien ook wel handig voor andere mensen dit scriptje, leuk voor op de verenigings website.
Mag ik het posten Blanche? Dankzij jou werkt het prima!
Of kan ik het hier en daar nog verbeteren?
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
require_once 'db_config.php';
$sql = "
SELECT
voornaam,
tussenvoegsel,
achternaam,
YEAR(CURRENT_DATE) - YEAR(geboortedatum) AS leeftijd
FROM
ledenlijst
WHERE
DAY(geboortedatum) = DAY(CURRENT_DATE)
AND
MONTH(geboortedatum) = MONTH(CURRENT_DATE)
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0)
{
echo 'Jammer, maar geen taart vandaag';
}
else
{
while($row = mysql_fetch_assoc($res))
{
echo $row['voornaam'].' '.$row['tussenvoegsel'].' '.$row['achternaam'].' leeftijd : '.$row['leeftijd'].' jaar. <br />';
}
}
?>
require_once 'db_config.php';
$sql = "
SELECT
voornaam,
tussenvoegsel,
achternaam,
YEAR(CURRENT_DATE) - YEAR(geboortedatum) AS leeftijd
FROM
ledenlijst
WHERE
DAY(geboortedatum) = DAY(CURRENT_DATE)
AND
MONTH(geboortedatum) = MONTH(CURRENT_DATE)
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0)
{
echo 'Jammer, maar geen taart vandaag';
}
else
{
while($row = mysql_fetch_assoc($res))
{
echo $row['voornaam'].' '.$row['tussenvoegsel'].' '.$row['achternaam'].' leeftijd : '.$row['leeftijd'].' jaar. <br />';
}
}
?>
Ziet er prima uit zo, maar het is niet echt een toevoeging voor de scriptlib. Het is namelijk specifiek voor jouw database en als ik me niet vergis zijn er al scriptjes over leeftijd en verjaardagen te vinden...