/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Fødselsdag, 5 frem og 3 tilbage
Fra : Søren Follmann


Dato : 08-10-06 00:08

Hvordan laver jeg en sql udtræk som giver mig fødselsdage med
måneder og dage, og springer over år, når jeg har fødselsdagen
som unix tid.

Den må gerne kunne tage 3 poster tilbage i forhold til time() og
5 frem, eller sådan noget.
Altså jeg har to rækker i tabellen, name og birtday, hvor
birthday er unix timecode for fødsels år og dag. hvad skal sql
syntaksen være?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Martin (08-10-2006)
Kommentar
Fra : Martin


Dato : 08-10-06 07:04

Søren Follmann wrote:
> Hvordan laver jeg en sql udtræk som giver mig fødselsdage med
> måneder og dage, og springer over år, når jeg har fødselsdagen
> som unix tid.
>
> Den må gerne kunne tage 3 poster tilbage i forhold til time() og
> 5 frem, eller sådan noget.
> Altså jeg har to rækker i tabellen, name og birtday, hvor
> birthday er unix timecode for fødsels år og dag. hvad skal sql
> syntaksen være?
>

Hvis du vil have den som ren sql udtræk, så spørg i database gruppen :)

Hvis du vil have det som PHP, så ka du få det her :)

Søren Follmann (08-10-2006)
Kommentar
Fra : Søren Follmann


Dato : 08-10-06 10:35

Martin wrote in dk.edb.internet.webdesign.serverside.php:
> Søren Follmann wrote:
> > Hvordan laver jeg en sql udtræk som giver mig fødselsdage med
> > måneder og dage, og springer over år, når jeg har fødselsdagen
> > som unix tid.
> >
> > Den må gerne kunne tage 3 poster tilbage i forhold til time() og
> > 5 frem, eller sådan noget.
> > Altså jeg har to rækker i tabellen, name og birtday, hvor
> > birthday er unix timecode for fødsels år og dag. hvad skal sql
> > syntaksen være?
> >
>
> Hvis du vil have den som ren sql udtræk, så spørg i database gruppen :)
>
> Hvis du vil have det som PHP, så ka du få det her :)

Jeg vil gerne have det som PHP

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søren Follmann (08-10-2006)
Kommentar
Fra : Søren Follmann


Dato : 08-10-06 10:36

Martin wrote in dk.edb.internet.webdesign.serverside.php:
> Søren Follmann wrote:
> > Hvordan laver jeg en sql udtræk som giver mig fødselsdage med
> > måneder og dage, og springer over år, når jeg har fødselsdagen
> > som unix tid.
> >
> > Den må gerne kunne tage 3 poster tilbage i forhold til time() og
> > 5 frem, eller sådan noget.
> > Altså jeg har to rækker i tabellen, name og birtday, hvor
> > birthday er unix timecode for fødsels år og dag. hvad skal sql
> > syntaksen være?
> >
>
> Hvis du vil have den som ren sql udtræk, så spørg i database gruppen :)
>
> Hvis du vil have det som PHP, så ka du få det her :)

Jeg vil gerne have det som PHP


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Kasper Johansen (08-10-2006)
Kommentar
Fra : Kasper Johansen


Dato : 08-10-06 13:22

Søren Follmann skrev:
> Den må gerne kunne tage 3 poster tilbage i forhold til time() og
> 5 frem, eller sådan noget.
> Altså jeg har to rækker i tabellen, name og birtday, hvor
> birthday er unix timecode for fødsels år og dag. hvad skal sql
> syntaksen være?

SQL:
SELECT * FROM brugere WHERE FROM_UNIXTIME(birthday, '%d %m') =
FROM_UNIXTIME('$timestamp', '%d %m')

PHP:
while($d_gf = mysql_fetch_assoc($foresp)){
if (date("d m", $d_gf[birthday]) == date("d m", $timestamp)){
print_r($d_gf);
}
}


Det er meget hurtigere at bruge SQL-implementationen. Teori omkring
hvorfor kan diskuteres i database-gruppen, hvortil dit spørgsmål også
burde stilles i første omgang (jeg tænker på sætningen: "hvad skal sql
syntaksen være?").

Du kan læse mere om dato- og tidsformater her på MySQL's egen hjemmeside:
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html


--
Med venlig hilsen
Kasper Johansen

Søren Follmann (30-08-2007)
Kommentar
Fra : Søren Follmann


Dato : 30-08-07 13:09

   $timestamp = time();
$foresp = mysql_query("SELECT id, navn, foedselsdag FROM imubrugere
ORDER BY FROM_UNIXTIME(foedselsdag, '%m %d')") or die(mysql_error());
while($data2 = mysql_fetch_assoc($foresp)){

   if (date("m d", $data2[foedselsdag]) > date("m d", $timestamp-(7*24*60*60))
&& date("m d", $data2[foedselsdag]) < date("m d", $timestamp)) {
   print date("m-d", $data2[foedselsdag]) ;
   print " - ";
   print $data2[navn];
   print " for ";
   print date("d m", $timestamp) - date("d m", $data2[foedselsdag]);
   print " dage siden!<br>";   
   }

   if (date("d m", $data2[foedselsdag]) == date("d m", $timestamp)){
   print date("m-d", $data2[foedselsdag]) ;
   print " - ";
   print $data2[navn];
   print " i dag!<br>";
   }

   if (date("m d", $data2[foedselsdag]) < date("m d", $timestamp+(7*24*60*60))
&& date("m d", $data2[foedselsdag]) > date("m d", $timestamp)){
   print date("m-d ", $data2[foedselsdag]) ;
   print $data2[navn];
   print " om ";
   print date("d m", $data2[foedselsdag]) - date("d m", $timestamp);
   print " dage!<br>";   
   }
   }

Jeg er der næsten, men jeg kan ikke få den til at finde ud af at regne med
datoer på tværs af måneder. Hvad gør jeg?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste