Avatar billede palito Nybegynder
04. december 2006 - 18:25 Der er 20 kommentarer

Finde fødselarer fra min mysql-database

Hvis jeg har mine brugeres fødselsdagsdatoer skrevet i følgende format: "måned.dag.år" (d.v.s. at det i dag er: '12.4.2006').

Hvordan henter jeg så alle fødselarerne? jeg skal jo kun tjekke op på dag og måned. Hvordan skal det gøres?
Avatar billede coderdk Praktikant
04. december 2006 - 19:07 #1
Sådan måske:

$sql = "SELECT * FROM brugere WHERE foedselsdato = '" . date( "d.n.Y" ) . "'";
$qh = mysql_query( $sql ) or die( mysql_error() );
if ( mysql_num_rows( $qh ) > 0 )
{
  while ( $row = mysql_fetch_assoc( $qh ) )
  {
      echo "<pre>";
      var_dump( $row );
      echo "</pre>";
  }
}
else
{
  echo "Der er ingen fødselarer i dag";
}
Avatar billede coderdk Praktikant
04. december 2006 - 19:07 #2
Hov:

$sql = "SELECT * FROM brugere WHERE foedselsdato = '" . date( "d.n.Y" ) . "'";

skal være:

$sql = "SELECT * FROM brugere WHERE foedselsdato = '" . date( "n.d.Y" ) . "'";
Avatar billede palito Nybegynder
04. december 2006 - 20:04 #3
Den tjekker jo også op på år? Den skal jo kun tjekke op på dag og måned (som jeg skrev)?
Avatar billede Slettet bruger
04. december 2006 - 20:14 #4
Bare for at rette i coderdk's:
$sql = "SELECT * FROM brugere WHERE foedselsdato = '" . date( "n.d" ) . "%'";
Avatar billede coderdk Praktikant
04. december 2006 - 20:35 #5
hehe tak coldgate :)
Avatar billede palito Nybegynder
04. december 2006 - 21:49 #6
er det sådan man gør det? kan det ikke gøres på en mere præcis måde? nu søger den jo.
Avatar billede palito Nybegynder
04. december 2006 - 21:49 #7
ikke at det ikke virker. men er der ikke en mere korrekt måde at gøre det på?
Avatar billede coderdk Praktikant
04. december 2006 - 21:50 #8
Ikke forstået - Det var jo det du ville have ;) Den mere præcise er:

$sql = "SELECT * FROM brugere WHERE foedselsdato = '" . date( "n.d." ) . "%'";
Avatar billede coderdk Praktikant
04. december 2006 - 22:29 #9
Tjoh, du kunne gemme en rigtig dato ;P
Avatar billede Slettet bruger
05. december 2006 - 00:22 #10
Ja det ville jeg også helst gøre ^^.
Så skal du vælge datatypen 'date' i din mysql-database, under det felt der hedder 'foedselsdato'
Avatar billede palito Nybegynder
05. december 2006 - 05:42 #11
og hvordan gemmer jeg så data til den?
Avatar billede coderdk Praktikant
05. december 2006 - 10:41 #12
Typen skal være DATE eller DATETIME f.eks. - Du kan så bare gemme som en streng, i formatet '2006-12-24' eller '20061224' :)
Avatar billede palito Nybegynder
05. december 2006 - 18:52 #13
hvordan hiver jeg dem så ud, så jeg kan bruge dem til fx. at finde den endelige alder osv?

hvordan plejer englænderne at skrive en dato? i danmark plejer vi at skrive dag.måned.år
Avatar billede coderdk Praktikant
05. december 2006 - 19:34 #14
Dunno, men åååå-mm-dd er ISO-standarden ;) En måde at udregne alderen er at gøre det direkte i en SQL: SELECT DATE_FORMAT( FROM_DAYS( TO_DAYS( NOW() ) - TO_DAYS( foedselsdato ) ), '%Y' ) + 0 AS alder FROM brugere
Avatar billede palito Nybegynder
05. december 2006 - 19:42 #15
coderdk -> tager den højde for hvornår på året man er født?
Avatar billede coderdk Praktikant
05. december 2006 - 21:17 #16
Jeg tror den der er ret circa ;) Så nej. Så er du nok nødt til at lave en bedre beregning...
Avatar billede palito Nybegynder
07. december 2006 - 17:41 #17
Jamen hvad er idéen i at køre dato-format når man kan gøre brug af time(). Det virker for mig lidt smartere at bruge timestamp til alt mht. tid :S

Kan ingen se nogle modargumenter for det
Avatar billede coderdk Praktikant
07. december 2006 - 18:23 #18
Et væsentligt et: Dine brugere kan ikke være født før 1/1-1970 0:00:00 ;)
Avatar billede palito Nybegynder
07. december 2006 - 19:11 #19
Men i det tilfælde har jeg dem også lagret i min database som måned.dag.år. Og har lavet en funktion der regner alderen korrekt ud.
Avatar billede coderdk Praktikant
07. december 2006 - 19:13 #20
Hvad er så problemet? Så kan du jo bare bruge den vi kom frem til:

$sql = "SELECT * FROM brugere WHERE foedselsdato = '" . date( "n.d." ) . "%'";

:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester