RE: [PHP-DB] Next birthday?
| From: | Robert V. Zwink | Date: | Fri, 08 Mar 2002 15:08:15 +0000 |
| Subject: | RE: [PHP-DB] Next birthday? | ||
| References: | 1 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-17573@lists.php.net to get a copy of this message | ||
The simple answer might be:
SELECT member.*
FROM
member
WHERE DAYOFYEAR(member_dob) >= DAYOFYEAR(CURDATE())
ORDER BY member_dob DESC LIMIT 1
Seems to work for me. The problem is that it wouldn't support members that
have a birthday on the same day :) To solve that I would select the next
birthday from the 'member' table, then go back and select all the members
that have that birthday. It also would not support selecting January
birthdays in December (which might be a problem Dec 31).
so you would actually need three queries:
SELECT member_dob
FROM member
WHERE DAYOFYEAR(member_dob) >= DAYOFYEAR(CURDATE())
ORDER BY member_dob DESC LIMIT 1
if that returns 0 results, then you would likely be in December trying to
show the next birthday in January. Go back to the database starting with
January 1 and select brithdays starting at the begining of the year.
SELECT member_dob
FROM member
WHERE DAYOFYEAR(member_dob) >= 0
ORDER BY member_dob DESC LIMIT 1
then take that result and:
SELECT member.*
FROM member
WHERE member_dob = '$result_from_previous_query'
ORDER BY last_name
This really seems like overkill. This query would be much simpler if you
just showed everyone's birthday next month (or something like that).
Robert Zwink
http://www.zwink.net/daid.php
-----Original Message-----
From: Kristjan Kanarik [mailto:kristk@ut.ee]
Sent: Friday, March 08, 2002 5:30 AM
To: php-db@lists.php.net
Subject: [PHP-DB] Next birthday?
I have a table called 'members' with a field (among many others)
'member_dob' - the birthday of a particular member. The data type of this
field is date (YYYY-mm-dd).
What I'd like to do now is to fetch one particular row from the database
(I am using MySQL 3.23.37) - namely the row of the member who is the next
one to have a birthday. Can this be done only with a advanced query or
should I fetch all rows and use PHP to find out who is the next one to
have a birthday? I'd prefer letting MySQL to do the job...
Any ideas?
TIA,
Kristjan
P.S. Pls. CC to kristk@ut.ee as well - I am only on the digest.
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php