Jag undrar om det är någon som vet hur man kan få ut dagens födelsedags barn från en MySql databas. Jag har ett fält i min databas där de har fyllt i när de fyller år.
Det här hade passat bättre i MySQL-forumet, men låt gå :)
Det hela beror ju på vilken datatyp du har i den kolumn där födelsedatum lagras. Är det någon av de datatyper som lagrar datum (och inte t.ex. text) kan du göra en select som ser ut sä här:
SELECT kolumner FROM medlemmar WHERE MONTH(födelsedag) = MONTH(NOW()) AND DAYOFMONTH(födelsedag) = DAYOFMONTH(NOW())
------------------ You can't be young forever, but you can be immature indefinitely.
Hur ligger det lagrat? Är det födelsedatum eller bara dag och månad?
Om det är födelsedatum så kan du skriva en sqlfråga:
$sql = "select * from members where month(birthday) = month(current_date) and dayofmonth(birthday) = dayofmonth(current_date)";
//hämta värden som vanligt
------------------ essentitia preter non sans multiplicandum
Jag gjorde en nys sida då fick jag detta felmedelandet:
Parse error: parse error in /web/sites/221/test/www.test.f2s.com/test1.php on line 6
hela koden är så gär:
<?
$l = mysql_connect("db.test.f2s.com", "användarnamn", "lösenord");
mysql_select_db("magic_mystery");
$sql = "select * from anvandare where month(manad) = month(current_date) and dayofmonth(dag) = dayofmonth(current_date)";
$result = mysql_query($sql) or die mysql_error();
if ( mysql_num_rows($result) ) {
echo "Dagens födelsedagsbarn: <br>";
Tack du det fungerar nu men jag har forfarande några frågor:
1. Min server ligger inte i Sverige så när klockan är 00.00 i sverige altså nu ska det vara den 14 oktober men eftersom server inte är i Sverige så är det forfarande 13 oktober för servern jag undrar om det går att fixa så att den går efter svensk tid?
2. Kan man inte göra så att om det inte finns några födelsedagsbarn så ska det stå att det inte finns några födelsedags barn idag?
$sql = "select * from anvandare where manad = month(from_unixtime(unix_timestamp(current_date)+6*3600)) and dag = dayofmonth(from_unixtime(unix_timestamp(current_date)+6*3600))";
Du får ändra 6 till det antal timmar som skiljer mellan serverns tid och svensk tid
2.
if ( mysql_num_rows($result) ) {
echo "Dagens födelsedagsbarn: <br>";
while ( $row = mysql_fetch_array($result) ) {
echo $row["anv_namn"] . "<br>";
}
} else {
echo "Ingen fyller år idag <br>";
}
?>
------------------ essentitia preter non sans multiplicandum