Avatar billede pepsiman Juniormester
07. oktober 2008 - 11:17 Der er 14 kommentarer og
1 løsning

fødselsdagliste i database, automatisk opdater hver mdr?

Hej alle.

Jeg vil oprette database for fødselsdagsliste og vil automatiske opdatering,når fødselsdagen kommer i måned.
det kan være 100 medlem.

jeg skal ikke tænker på at hvem har næste fødselsdag i ny mdr.
det er deligt at have automatiske opdatering

det skal være kun rund fødselsdag f.eks. 25 år, 30, 40, 50 ovs. så længe man lever. :)

jeg bruger mysql og php.. jeg er ikke så god til at lave mysql. det kommer nok.

hvordan vil det ser ud på mysql?.

forsider.php:

højre sider vil viser sådan ud:
------------------
Måneds fødselsdag:

Helle Jensen 7 okt

Jens Schmidt 23 okt

TILYKKE!
----------------

jeg ved ikke om det skal tager år med 40 år eller uden. jeg finder ude af det senere.

det må gerne flere fødselsdag på okt/måned.

Tak
Avatar billede henninghabor Nybegynder
07. oktober 2008 - 11:35 #1
SELECT * FROM birthdays WHERE MONTH(now()) = MONTH(birthday) AND (YEAR(now()) - YEAR(birthday)) = 25 OR (YEAR(now()) - YEAR(birthday)) = 30 OR (YEAR(now()) - YEAR(birthday)) = 40 osv.
Avatar billede henninghabor Nybegynder
07. oktober 2008 - 11:38 #2
Ovenstående henter alle rækker i tabellen birthdays. birthday indeholder fødselsdato på den enkelte bruger og skal være af typen DATE.
Avatar billede pepsiman Juniormester
07. oktober 2008 - 19:39 #3
Hej Henninghabor.

Skal det ikke være sådan ud?

SELECT name,date
FROM Birtgdays
WHERE MONTH(now()) = MONTH(birthday) AND (YEAR(now()) - YEAR(birthday)) = 25 OR (YEAR(now()) - YEAR(birthday)) = 30 OR (YEAR(now()) - YEAR(birthday)) = 40 osv.

jeg mener også AND (date(now)). det giver kun dato, ikke årtal med.

jeg må siger at det er første gang jeg bruger SQL-koden.

jeg har ikke teste det. jeg gør det i morgen.
Avatar billede henninghabor Nybegynder
07. oktober 2008 - 22:44 #4
Jeg har ikke testet ovenstående og derfor er det kun teoretisk at det virker, men der er jo forskel på hvad jeg har skrevet og det du siger med at date() giver datoen.

Du vil bruge date(), hvor jeg foreslår YEAR() jvf. http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_year der jo netop henter årstallet og trækker det fra det indeværende år.
Avatar billede henninghabor Nybegynder
07. oktober 2008 - 23:02 #5
Og hvis du mener den DATE jeg snakker om 11:38:21, mener jeg at det er selve opsætningen af tabellen. :)

Man kan evt. også bruge http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_to-days der resulterer i antallet af dage mellem 2 datoer.

Her har jeg så divideret resultatet med 365, da det er det antal dage, de fleste år har.

SELECT * FROM birthdays WHERE MONTH(now()) = MONTH(birthday) AND FLOOR((TO_DAYS(NOW()) - TO_DAYS(birthday)) / 365) = 25 OR FLOOR((TO_DAYS(NOW()) - TO_DAYS(birthday)) / 365) = 30 osv.
Avatar billede pepsiman Juniormester
12. oktober 2008 - 15:36 #6
hej henning.

jeg har prøvet med din kode overstående..det virker ikke,for enter jeg skrev ikke rigtigt ind eller virker ikke..

Jeg har søgte noget hjælpe i google. Nu ved jeg hvordan man gør det med sql, men mest om medlemsnavn, byen, postnummer osv.. ikke date, det er ikke nemt for mig at finde ude af det med date.hmmm

jeg laver ny.

Jeg vil opretter navn og fødselsdato under admin og gemmer det under fødselsdagslister.Og når nogen har rund fødselsdagen i denne måned. det vil viser sig på højre sider under admin, hvis ikke,så ingen viser sig.

id - int - 10 -auto
navn - varchar - 50
birth - date - 1950-01-01
age - text

jeg vil have udregn fra fødsel til nutid at hvor gammel er hun/han. age viser tal

hvordan det?
Jeg mangler det.. får jeg det,så ser jeg om det virker..

------------------------------------
SELECT *
FROM birthdags
WHERE MONTH(now))age LIKE '%25%* OR LIKE '%30%' ovs

jeg ved ikke om kode er rigtigt overpå.Jeg vil prøver det,når jeg får age (udregn)

fødselsdaglister-resultater efter jeg indtaste data ind:
---------------------------------
Hanne Pedersen 1958-10-11 50 år

Forstår du mig?
Avatar billede henninghabor Nybegynder
12. oktober 2008 - 18:24 #7
Følgende kode udregner alderen (Antal dage mellem dags dato og fødselsdagen divideret med 365 dage):

SELECT id, navn, FLOOR((TO_DAYS(NOW()) - TO_DAYS(birthday)) / 365) AS age FROM birthdays WHERE age = 25 OR age = 30 osv
Avatar billede henninghabor Nybegynder
12. oktober 2008 - 18:33 #8
Hov, jeg glemte at de kun skulle vises når det var i den måned de havde fødselsdag. Øjeblik.
Avatar billede henninghabor Nybegynder
12. oktober 2008 - 18:38 #9
Se om du kan få denne til at virke:

SELECT FLOOR((TO_DAYS(NOW()) - TO_DAYS(birthday)) / 365) AS age, MONTH(birthday) AS usr_month, MONTH(DATE(NOW())) AS this_month FROM birthdays WHERE usr_month = this_month AND age = 25 OR age = 30
Avatar billede pepsiman Juniormester
12. oktober 2008 - 19:44 #10
det virker ikke..

jeg fik besked tilbage

#1054 - Unknown column 'birthdays' in 'field list'

------------
SELECT FLOOR((TO_DAYS(NOW()) - TO_DAYS(birthdays)) / 365) AS age, MONTH(birthdays) AS usr_month, MONTH(DATE(NOW())) AS this_month FROM birthdays WHERE usr_month = this_month AND age = 25 OR age = 30 OR age = 40 OR age = 50 OR age = 60 OR age = 65 OR age = 70 OR age = 75 OR age = 80 OR age = 90 OR age = 95 OR age = 100 OR age = 101;
Avatar billede henninghabor Nybegynder
12. oktober 2008 - 21:46 #11
Ændre birthdays til birth alle steder, hvis du ikke har ændret i databaseopsætningen
Avatar billede pepsiman Juniormester
13. oktober 2008 - 09:49 #12
nu løst problem , næste ny problem usr_month...jeg regner med at det er også this_month med.

skal jeg skriver usr_month i mydatabase_dk_db?

Hvad skal jeg skriver ind?

database:birthdagys
id - int - 10 - auto
navn -varchar - 50
birth - date - null - 1950-01-01
age - text
-------------------
SQL-forespørgsel:
SELECT *
FROM 'birthdays'
LIMT 0,30
Avatar billede henninghabor Nybegynder
13. oktober 2008 - 11:24 #13
usr_month og this_month skal IKKE gemmes i databasen. Det er nogle data der bliver udregnet mens forespørgslen udføres.
Avatar billede pepsiman Juniormester
22. oktober 2008 - 09:31 #14
Ok..ingen svar på mit spørgsmål og vælge at lukke her. jeg vil tager det op i næste gang,hvis jeg har behov for det.

jeg håber at en dag vil jeg forstår at hvordan bruger time og date..

Tak for hjælpen,henning

point til mig.

På gensyn
Avatar billede pepsiman Juniormester
22. oktober 2008 - 09:32 #15
point til mig
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
Kurser inden for grundlæggende programmering

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