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?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
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"; }
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" ) . "'";
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)?
Slettet bruger
04. december 2006 - 20:14
#4
Bare for at rette i coderdk's: $sql = "SELECT * FROM brugere WHERE foedselsdato = '" . date( "n.d" ) . "%'";
04. december 2006 - 20:35
#5
hehe tak coldgate :)
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.
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å?
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." ) . "%'";
04. december 2006 - 22:29
#9
Tjoh, du kunne gemme en rigtig dato ;P
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'
05. december 2006 - 05:42
#11
og hvordan gemmer jeg så data til den?
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' :)
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
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
05. december 2006 - 19:42
#15
coderdk -> tager den højde for hvornår på året man er født?
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...
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
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 ;)
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.
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." ) . "%'"; :)
Vi tilbyder markedets bedste kurser inden for webudvikling