selecteren op dag en maand

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Peter Arendse

Peter Arendse

14/01/2009 14:05:00
Quote Anchor link
Beste allemaal,
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)
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
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'];
    }
}


?>
 
PHP hulp

PHP hulp

05/11/2024 14:44:37
 
Joren de Wit

Joren de Wit

14/01/2009 14:12:00
Quote Anchor link
Peter Arendse schreef op 14.01.2009 14:05:
Nu wil ik graag dat wanneer zij jarig zijn dit op de website verschijnt.
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.

Om degenen die vandaag jarig zijn te selecteren, zul je dus ook de vergelijking op dag en maand uit moeten voeren:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT
  voornaam,
  achternaam
FROM
  ledenlijst
WHERE
  DAY(geboortedatum) = DAY(CURRENT_DATE)
AND
  MONTH(geboortedatum) = MONTH(CURRENT_DATE)
 
Peter Arendse

Peter Arendse

14/01/2009 14:22:00
Quote Anchor link
Grutjes, het werkt, daar heb ik weer lang over zitten denken.
Maar Blanche, is het ook mogelijk om er achter te zetten hoe oud ze gweorden zijn? En hoe bouw je dat dan op?
 
Joren de Wit

Joren de Wit

14/01/2009 14:32:00
Quote Anchor link
Leeftijd is opgebouwd uit het huidige jaartal min het jaartal van geboorte. Dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
SELECT
  voornaam,
  achternaam,
  YEAR(CURRENT_DATE) - YEAR(geboortedatum) AS leeftijd
FROM
  ...
 
Peter Arendse

Peter Arendse

14/01/2009 14:57:00
Quote Anchor link
Super, het werkt!!
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)
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
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 />';
    }
}


?>
 
Joren de Wit

Joren de Wit

14/01/2009 15:27:00
Quote Anchor link
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...
 



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.