Menu
HI,
I’m trying to find script to run a query that will list all birthdays within 20 days.
the date is stored in a column DOB in a mysql table as yyyy-mm-dd
any help is great
[code=php]
include '../config/db.php';
$today = strtotime("Now");
$leadDate = strtotime("+350 day", $today);
$get_childdob = mysql_query("SELECT * FROM children WHERE childdob BETWEEN CURDATE() AND '$leaddate'")or die (mysql_error());
while($row_get_childdob = mysql_fetch_assoc($get_childdob)){
$name = $row_get_childdob['childfirstname'];
echo $name;
}
[/code]
[code=php]
<?php
include ('../config/db.php');
$today = strtotime("Now");
$leadDate = strtotime("+150 day", $today);
$get_childdob = mysql_query("SELECT * FROM children WHERE childdob BETWEEN CURDATE() AND '$leadDate'")or die (mysql_error());
$childdob_count = mysql_num_rows($get_childdob);
while($row_get_childdob=mysql_fetch_assoc($get_childdob)){
$fname = $row_get_childdob['childfirstname'];
$lname = $row_get_childdob['childlastname'];
$owner_id = $row_get_childdob['owner_id'];
$childdob = $row_get_childdob['childdob'];
echo $name;
if(isset($_POST['childdob_submit'])){
$subject = "Birthday Reminder from Family Click";
$message = " $fname lname birth is on $chiddob. be sure to give them a call or send
them a message wishing them a Happy Birthday.
Visit www.familyclick.ca to get their conact information and check out their gift
wish list.
This message was sent to you by Family Click
This is an automated message, please do not reply!";
$x = 1;
$hold = 50; // quantity of emails sent before 3 sec delay
$query_email_owner = mysql_query("SELECT email_address FROM users WHERE user_id = '$owner_id'");
$email_count=mysql_num_rows($query_email_owner);
while($row_email_owner=mysql_fetch_assoc($query_email_owner)){
$email_address = $row_email_owner['email_address'];
mail($email_address, $subject,
$message, "From:FamilyClick.ca <[email protected]>");
$x++;
if($x == $hold) { // When $x is equal to $hold, a 3 sec delay will occur avoiding php to timeout
sleep(3);
$x = 0;
} // end of while loop
}
}
}
[/code]
[code=php]
$get_childdob = mysql_query("SELECT owner_id,childdob,IF(
DAYOFYEAR(childdob) < DAYOFYEAR(CURDATE()), DAYOFYEAR(childdob)+366,DAYOFYEAR(childdob)
)
as birthdayofyear
FROM children ORDER BY birthdayofyear")or die (mysql_error());
[/code]
[code=php]
$get_childdob = mysql_query("SELECT owner_id, childdob FROM children WHERE childdob Between CURDATE() AND DATE_ADD(CURDATE(),INTERVAL 366 DAY)")or die (mysql_error());
[/code]
[code=php] $get_childdob = mysql_query("SELECT owner_id, childdob FROM children WHERE childdob Between CURDATE() AND DATE_ADD(CURDATE(),INTERVAL 20 DAY)")or die (mysql_error()); [/code]
]the date is stored in a column DOB in a mysql table as yyyy-mm-dd[/QUOTE]
[code=php]
$get_childdob = mysql_query("SELECT owner_id, childdob FROM children WHERE childdob Between CURDATE() AND ADDDATE (CURDATE(),INTERVAL 20 DAY)")or die (mysql_error());
[/code]
<i>
</i>mysql> SELECT *
-> FROM blog
-> WHERE date_added
-> BETWEEN CURDATE()
-> AND ADDDATE(CURDATE() , INTERVAL 20 DAY ) ;
+---------+-------+-----------------+------------+----------+
| blog_id | title | message | date_added | add_name |
+---------+-------+-----------------+------------+----------+
| 13 | meee | eererqerqerqewr | 2006-12-30 | NULL |
+---------+-------+-----------------+------------+----------+
<i>
</i>mysql> SELECT *
-> FROM blog
-> WHERE date_added
-> BETWEEN CURDATE()
-> AND ADDDATE(CURDATE() , INTERVAL 20 DAY ) ;
+---------+------------+-----------------+------------+----------+
| blog_id | title | message | date_added | add_name |
+---------+------------+-----------------+------------+----------+
| 13 | meee | eererqerqerqewr | 2006-12-30 | NULL |
| 14 | erqewrqwer | qewrqewrqwerqwe | 2006-12-11 | NULL |
| 15 | qewrqwer | qwerqwer | 2006-12-12 | NULL |
+---------+------------+-----------------+------------+----------+
3 rows in set (0.00 sec)
[code=php]
<?php
require_once('db.connect.php');
$get_childdob = mysql_query("SELECT date_added FROM blog WHERE date_added BETWEEN CURDATE()
AND ADDDATE(CURDATE() , INTERVAL 20 DAY) order by date_added desc")or die (mysql_error());
$num = mysql_num_rows($get_childdob);
echo "There are " . $num . " birthdays coming up";
echo '<br>';
while($row_get_childdob = mysql_fetch_array($get_childdob)){
$name = $row_get_childdob['date_added'];
echo $name .'<br>';
}
?>
[/code]
<i>
</i>There are 4 birthdays coming up
2006-12-31
2006-12-30
2006-12-12
2006-12-11
I got it to return a value but I had to use a date in the future. all my dates are in the past. peoples dates of birth. in your examples all dates are in the future.
i'm worth with birthdates[/QUOTE]
[code=php]
$timeOfpast20days = mktime(0, 0, 0, date("m") , date("d")-20, date("Y"));
$dateOfpast20days = date("Y-m-d" , $timeOfpast20days);
$query = "select * from tables where date_column < '$dateOfpast20days'";
[/code]
<i>
</i>SELECT * from table WHERE datecolumn < DATE_SUB(CURDATE(),INTERVAL 20 DAYS);
<i>
</i>STR_TO_DATE(CONCAT(EXTRACT(DAY from datecolumn),'-',EXTRACT(MONTH from datecolumn),'-',EXTRACT(YEAR from CURDATE()),'%d-%m-%y')
[code=php]
$get_childdob = mysql_query("SELECT STR_TO_DATE(CONCAT(EXTRACT(DAY FROM childdob),'-',EXTRACT(MONTH FROM childdob),'-',EXTRACT(YEAR FROM CURDATE()),'%d-%m-%y') as newdate, owner_id FROM children WHERE childdob < DATE_SUB(CURDATE(),INTERVAL 20 DAYS); ")or die (mysql_error());
[/code]
STR_TO_DATE(CONCAT(EXTRACT(DAY FROM childdob),'-',EXTRACT(MONTH FROM childdob),'-',EXTRACT(YEAR FROM CURDATE())),'%d-%m-%y') as ThisYearsDate
[code=php]
$get_childdob = mysql_query("SELECT STR_TO_DATE(CONCAT(EXTRACT(DAY FROM childdob),'-',EXTRACT(MONTH FROM childdob),'-',EXTRACT(YEAR FROM CURDATE())),'%d-%m-%y') as ThisYearsDate, owner_id FROM children WHERE ThisYearsDate < DATE_SUB(CURDATE(),INTERVAL 20 DAYS)")or die (mysql_error());
[/code]
<i>
</i>select STR_TO_DATE(CONCAT(EXTRACT(DAY FROM CURDATE()),'-',EXTRACT(MONTH FROM CURDATE()),'-',EXTRACT(YEAR FROM CURDATE())),'%d-%m-%Y') as ThisYearsDate;
[code=php]
$query = "select STR_TO_DATE(CONCAT(EXTRACT(DAY FROM CURDATE()),'-',EXTRACT(MONTH FROM CURDATE()),'-',EXTRACT(YEAR FROM CURDATE())),'%d-%m-%Y') as ThisYearsDate";
$get_childdob = mysql_query($query)or die(mysql_error());
[/code]
0.1.9 — BETA 5.9