Geburtstag in Php
Peterli
- php
0 dedlfix
Hallo,
ich bin neu in dem Bereich Php, ich bitte vorsichtshalber um Nachsicht.
Ich habe diesen tollen Schnipsel entdeckt, würde aber gerne nur die Geburtstage angezeigt bekommen, die heute sind.
Ich dachte, dass man an den >-Zeichen "schrauben" könnte, das war aber erfolglos.
Hier ist das Skript, ich freue mich über jede Hilfe - vielen Dank!
<?php
function datumdeutsch($datum) {
$d = explode("-",$datum);
return sprintf("%02d.%02d.%04d", $d[2], $d[1], $d[0]);
}
function aktuellesalter($geburtsdatum) {
$datum = explode('-', "$geburtsdatum");
return date('Y') - $datum[0] - intval(date('n') < $datum[1] || date('n') == $datum[1] && date('j') < $datum[2]);
}
$sql = "SELECT
sid,
name,
vorname,
geburtsdatum,
DATEDIFF(geburtsdatum +
INTERVAL (YEAR(CURRENT_DATE) - YEAR(geburtsdatum) +
IF(DATE_FORMAT(CURRENT_DATE, \"%m%d\") > DATE_FORMAT(geburtsdatum, \"%m%d\"), 1, 0))
YEAR, CURRENT_DATE) AS 'tagezumgeburtstag'
FROM
menschen
WHERE
((DATE_FORMAT(geburtsdatum, \"%m%d\")!=DATE_FORMAT(CURRENT_DATE, \"%m%d\"))&&
(geburtsdatum!='0000-00-00'))
ORDER BY
tagezumgeburtstag DESC
Limit 3";
echo '<b>Letzte Geburtstage:</b><br/>';
echo '
<table>
<thead>
<tr>
<th>Nachname</th>
<th>Vorname</th>
<th>Geburtsdatum</th>
<th>Alter</th>
</tr>
</thead>
<tbody>';
$result = mysql_query($sql) OR die(mysql_error());
while($row = mysql_fetch_assoc($result))
{
echo '<tr>
<td>'.$row['vorname'].'</td>
<td>'.$row['name'].'</td>
<td><center>'.datumdeutsch($row['geburtsdatum']).'</center></td>
<td><center>'.aktuellesalter($row['geburtsdatum']).'</center></td>
</tr>';
}
echo '</tbody></table>';
?>
Tach!
Ich habe diesen tollen Schnipsel entdeckt, würde aber gerne nur die Geburtstage angezeigt bekommen, die heute sind.
WHERE
((DATE_FORMAT(geburtsdatum, "%m%d")!=DATE_FORMAT(CURRENT_DATE, "%m%d"))&&
(geburtsdatum!='0000-00-00'))
Dann solltest du nicht ausgerechnet diese Datensätze ausschließen, sondern die Bedingung ent-negieren. Der zweite Teil ab && kann dann auch wegfallen.
dedlfix.