[SOLVED]Verjaardag lijst script... 2009?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marvin H

Marvin H

16/12/2008 09:27:00
Quote Anchor link
Hallo script masters,

Ik heb onderstaand php script op een intranet pagina, nu is het probleem dat hij alleen tot 31-12-2008 loopt en dus niet de mensen die jarig zijn op bijvoorbeeld 2 januari nu al meegeeft. Heb aantal dingen geprobeerd maar krijg het niet voor elkaar. Weet iemand de oplossing? hier is het werkende script die nu tot 31 december loopt.

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
<?php
include 'dbconnect.php';

// Datum in dagen
$dag = date("d");

// Datum in maanden
$maand = date("m");


$query  = "SELECT
  naam, geboorte, vestiging, geboortedag, geboortemaand
FROM
  birthday
WHERE
  geboorte + INTERVAL (YEAR(NOW()) - YEAR(geboorte)) YEAR
BETWEEN
  NOW() - INTERVAL 6 DAY
AND
  NOW() + INTERVAL 11 DAY
  ORDER BY geboortemaand, geboortedag, naam"
;

$result = mysql_query($query)
or die(mysql_error());

while(list($naam,$geboorte,$vestiging,$geboortedag,$geboortemaand)= mysql_fetch_row($result))
{

        
    if ($geboortedag == $dag && $geboortemaand == $maand) {
    echo "<b><font color=\"yellow\">&nbsp;&nbsp;&nbsp;$geboortedag-$geboortemaand :: $naam ($vestiging)</font></b><br>"; }
    
    else {
    echo "&nbsp;&nbsp;&nbsp;$geboortedag-$geboortemaand :: $naam ($vestiging) <br>"; }
    
}


echo "<br>";

include 'closedbconnect.php';

?>
Gewijzigd op 01/01/1970 01:00:00 door Marvin H
 
PHP hulp

PHP hulp

01/03/2025 05:22:12
 
Dennis Mertens

Dennis Mertens

16/12/2008 09:43:00
Quote Anchor link
Komt dat niet door:
geboorte + INTERVAL (YEAR(NOW()) - YEAR(geboorte)) YEAR

Ook al snap ik niet veel van die zin...
 
Marvin H

Marvin H

16/12/2008 10:02:00
Quote Anchor link
Dennis Mertens schreef op 16.12.2008 09:43:
Komt dat niet door:
geboorte + INTERVAL (YEAR(NOW()) - YEAR(geboorte)) YEAR

Ook al snap ik niet veel van die zin...


Zou goed kunnen :) dat probleem heb ik dus ook, wat moet er dan wel komen?
 

16/12/2008 10:03:00
Quote Anchor link
Script kiddies?

Lol. Dat is een serieuze belediging.
 
Marvin H

Marvin H

16/12/2008 10:20:00
Quote Anchor link
Chris Kortaan schreef op 16.12.2008 10:03:
Script kiddies?

Lol. Dat is een serieuze belediging.


sorry :) verkeerde woord... ff veranderd... maar weet je oplossing?
 
Dennis Mertens

Dennis Mertens

16/12/2008 10:23:00
Quote Anchor link
Welke verjaardagen moet je allemaal krijgen dan?
 
Marvin H

Marvin H

16/12/2008 10:25:00
Quote Anchor link
Dennis Mertens schreef op 16.12.2008 10:23:
Welke verjaardagen moet je allemaal krijgen dan?


van alle medewerkers die hier werken. Ze staan in een database... het script zoals hij nu is werkt prima, alleen tot 31-12-2008, terwijl er ook mensen jarig zijn op 1-1-2009... die wil ik ook weergeven... maar omdat hij in de query alleen vergelijkt met het huidige jaar kan dat niet, de query moet dus anders maar weet niet hoe
 
- SanThe -

- SanThe -

16/12/2008 10:29:00
Quote Anchor link
Je moet geboortedatum in één veld type DATE zetten. En niet in diverse losse velden: geboortedag, geboortemaand
 

16/12/2008 10:29:00
Quote Anchor link
Doe een tweede select, waarin hij kijkt of het bijna het einde van het jaar is. als dat zo is, laat je hem de data selecteren van 1 jan tot bijv. 5 jan..
 
Marvin H

Marvin H

16/12/2008 10:40:00
Quote Anchor link
Chris Kortaan schreef op 16.12.2008 10:29:
Doe een tweede select, waarin hij kijkt of het bijna het einde van het jaar is. als dat zo is, laat je hem de data selecteren van 1 jan tot bijv. 5 jan..


Dom, had ik natuurlijk ook kunnen verzinnen... Thankx... Heb nu dit als code, waarbij als de datum 20-12 of hoger is hij ook het begin van januari weergeeft.

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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>

<?php
include 'dbconnect.php';

// Datum in dagen
$dag = date("d");

// Datum in maanden
$maand = date("m");


$query  = "SELECT
  naam, geboorte, vestiging, geboortedag, geboortemaand
FROM
  birthday
WHERE
  geboorte + INTERVAL (YEAR(NOW()) - YEAR(geboorte)) YEAR
BETWEEN
  NOW() - INTERVAL 6 DAY
AND
  NOW() + INTERVAL 11 DAY
  ORDER BY geboortemaand, geboortedag, naam"
;

$result = mysql_query($query)
or die(mysql_error());

while(list($naam,$geboorte,$vestiging,$geboortedag,$geboortemaand)= mysql_fetch_row($result))
{

        
    if ($geboortedag == $dag && $geboortemaand == $maand) {
    echo "<b><font color=\"yellow\">&nbsp;&nbsp;&nbsp;$geboortedag-$geboortemaand :: $naam ($vestiging)</font></b><br>"; }
    
    else {
    echo "&nbsp;&nbsp;&nbsp;$geboortedag-$geboortemaand :: $naam ($vestiging) <br>"; }
    
}


if ($dag >= 20 && $geboortemaand = 12){
$query1  = "SELECT
  naam, geboorte, vestiging, geboortedag, geboortemaand
FROM
  birthday
WHERE
  geboortemaand = 1
AND
  geboortedag <= 5
  ORDER BY geboortemaand, geboortedag, naam"
;

$result1 = mysql_query($query1)
or die(mysql_error());

while(list($naam,$geboorte,$vestiging,$geboortedag,$geboortemaand)= mysql_fetch_row($result1))
{

        
    if ($geboortedag == $dag && $geboortemaand == $maand) {
    echo "<b><font color=\"yellow\">&nbsp;&nbsp;&nbsp;$geboortedag-$geboortemaand :: $naam ($vestiging)</font></b><br>"; }
    
    else {
    echo "&nbsp;&nbsp;&nbsp;$geboortedag-$geboortemaand :: $naam ($vestiging) <br>"; }
    
}
}


echo "<br>";

include 'closedbconnect.php';

?>


</body>
</html>
 
Robert Deiman

Robert Deiman

16/12/2008 10:43:00
Quote Anchor link
@Chris

Het kan ook in 1 query:


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
SELECT
  naam, geb_dat
FROM
  verjaardag
WHERE
  geb_dat + INTERVAL (YEAR(NOW()) - YEAR(geb_dat)) YEAR
BETWEEN
  NOW() - INTERVAL 6 DAY
AND
  NOW() + INTERVAL 11 DAY
OR
  geb_dat + INTERVAL (YEAR(NOW()) - YEAR(geb_dat)+1) YEAR
BETWEEN
  NOW() - INTERVAL 6 DAY
AND
  NOW() + INTERVAL 11 DAY
  ORDER BY MONTH(geb_dat), DAY(geb_dat), naam


Overigens gaat nu het sorteren nog niet helemaal goed.. :S
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 

16/12/2008 11:06:00
Quote Anchor link
Robert; ik had het over een 2e select binnen de select :-) (Geen twee losse als je dat bedoeld..)
 
Robert Deiman

Robert Deiman

16/12/2008 11:22:00
Quote Anchor link
@Chris

De TS heeft het nu opgelost met echt een 2e query, ik was dus blijkbaar niet de enige die het zo opvatte :)
 



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.