Leeftijd
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$query = mysql_query(" SELECT jaren, DATE_FORMAT(datum,'%d-%m-%Y') as datum FROM kaderleden WHERE zichtbaar = 1 ORDER BY groep ASC, naam ASC" );
$r[jaren] = str_replace("[geboorte]", GebDate("08-10-1978"), $r[jaren]);
echo nl2br($r['jaren'])." jaar<br>";
?>
$query = mysql_query(" SELECT jaren, DATE_FORMAT(datum,'%d-%m-%Y') as datum FROM kaderleden WHERE zichtbaar = 1 ORDER BY groep ASC, naam ASC" );
$r[jaren] = str_replace("[geboorte]", GebDate("08-10-1978"), $r[jaren]);
echo nl2br($r['jaren'])." jaar<br>";
?>
Die Replace werkt wel als ik de datum handmatig invul (zie voorbeeld) maar als ik hem uit de database haal dan werkt hij niet
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$query = mysql_query(" SELECT jaren, DATE_FORMAT(datum,'%d-%m-%Y') as datum FROM kaderleden WHERE zichtbaar = 1 ORDER BY groep ASC, naam ASC" );
$r[jaren] = str_replace("[geboorte]", GebDate($r['jaren']), $r[jaren]);
echo nl2br($r['jaren'])." jaar<br>";
?>
$query = mysql_query(" SELECT jaren, DATE_FORMAT(datum,'%d-%m-%Y') as datum FROM kaderleden WHERE zichtbaar = 1 ORDER BY groep ASC, naam ASC" );
$r[jaren] = str_replace("[geboorte]", GebDate($r['jaren']), $r[jaren]);
echo nl2br($r['jaren'])." jaar<br>";
?>
Heb ik ergens een quotje ofzo verkeerd????
Gewijzigd op 01/01/1970 01:00:00 door Richard
Code (php)
1
2
3
2
3
<?
$query = mysql_query(" SELECT jaren, DATE_FORMAT(datum,'%d-%m-%Y') as datum FROM kaderleden WHERE zichtbaar = 1 ORDER BY groep ASC, naam ASC" );
?>
$query = mysql_query(" SELECT jaren, DATE_FORMAT(datum,'%d-%m-%Y') as datum FROM kaderleden WHERE zichtbaar = 1 ORDER BY groep ASC, naam ASC" );
?>
Opmerkingen:
- $query is geen query maar een result. Een rare naam dus. $result lijkt mij 100x beter
- Sorteren op datum is nu onmogelijk geworden, een alias aanmaken met dezelfde naam als het origineel is al zinloos, maar levert met een verschillende inhoud ook nog eens fouten op.
DATE_FORMAT(datum,'%d-%m-%Y') as datumNL gaat een stuk beter.
- Je hebt de garantie dat de query op ieder willekeurig moment kan mislukken. Waarom controleer je dat dan niet? Zet minimaal het volgende achter de functie mysql_query(): or trigger_error(mysql_error());
- $r[jaren] ? Is 'jaren' een constante? Ik ben bang van niet, waarschijnlijk ben je de quotes vergeten: $r['jaren']
- Wat doe jij met de data die je uit de database haalt? Ga je die wel fetchen? Dus met mysql_fetch_assoc($result) in een array zetten. Die hiervoor de php-handleiding of de Tutorials hier op phphulpl.nl
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$result = mysql_query(" SELECT jaren, DATE_FORMAT(datum,'%d-%m-%Y') as datum FROM kaderleden WHERE zichtbaar = 1 ORDER BY groep ASC, naam ASC" );
for ( ;$r = mysql_fetch_assoc($result); )
{
$r['jaren'] = str_replace("[geboorte]", GebDate($r['datum']), $r['jaren']);
echo $r['jaren'];
}
?>
$result = mysql_query(" SELECT jaren, DATE_FORMAT(datum,'%d-%m-%Y') as datum FROM kaderleden WHERE zichtbaar = 1 ORDER BY groep ASC, naam ASC" );
for ( ;$r = mysql_fetch_assoc($result); )
{
$r['jaren'] = str_replace("[geboorte]", GebDate($r['datum']), $r['jaren']);
echo $r['jaren'];
}
?>
Sorry dat ik het zeg, maar ik snap weinig van jouw code.
Begin Functie:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
function GebDate($GebDate) {
## Datum splitsen in dag, maand, jaar
$aGebDate = split("-", $GebDate);
## Welk jaar is het nu?
$dYear = date("Y", mktime());
## Leeftijd uitrekenen, door jaren van elkaar af te trekken
$sAge = $dYear - $aGebDate[2];
## Wat als iemand net jarig is geweest? Leeftijd aanpassen
$sCode1 = $aGebDate[1] . $aGebDate[0];
$sCode2 = date("m", mktime()) . date("d", mktime());
if ($sCode1 > $sCode2) {
$sAge = $sAge - 1;
}
## Leeftijd terugsturen
return $sAge;
}
?>
function GebDate($GebDate) {
## Datum splitsen in dag, maand, jaar
$aGebDate = split("-", $GebDate);
## Welk jaar is het nu?
$dYear = date("Y", mktime());
## Leeftijd uitrekenen, door jaren van elkaar af te trekken
$sAge = $dYear - $aGebDate[2];
## Wat als iemand net jarig is geweest? Leeftijd aanpassen
$sCode1 = $aGebDate[1] . $aGebDate[0];
$sCode2 = date("m", mktime()) . date("d", mktime());
if ($sCode1 > $sCode2) {
$sAge = $sAge - 1;
}
## Leeftijd terugsturen
return $sAge;
}
?>
Einde Functie
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$result = mysql_query(" SELECT jaren, DATE_FORMAT(datum,'%d-%m-%Y') as datum FROM kaderleden WHERE zichtbaar = 1 ORDER BY groep ASC, naam ASC" );
for ( ;$r = mysql_fetch_assoc($result); )
{
$r['jaren'] = str_replace("[geboorte]", GebDate($r['datum']), $r['jaren']);
echo $r['jaren'];
echo " jaar <br>";
}
?>
$result = mysql_query(" SELECT jaren, DATE_FORMAT(datum,'%d-%m-%Y') as datum FROM kaderleden WHERE zichtbaar = 1 ORDER BY groep ASC, naam ASC" );
for ( ;$r = mysql_fetch_assoc($result); )
{
$r['jaren'] = str_replace("[geboorte]", GebDate($r['datum']), $r['jaren']);
echo $r['jaren'];
echo " jaar <br>";
}
?>
In de tabelcel datum zet je de geboortedatum
In de tabelcel jaren zet je [geboorte]
Wanneer je dit doet dan berekend hij de leeftijd en zijn hij bij ieder persoon zijn of haar leeftijd ;-)
Tja... Zo kan het ook :S.... Stuk makkelijker als mijn geklooi :(