i am new in php
i have a table
+-----------------------------------------------------------------+
| seeker |
+----+-------+----------+---------------+-------------------------+
| id | name | password | register_date | login_date | limit_date |
+----+-------+----------+---------------+------------+------------+
| 01 | ali | **** | 2012-02-08 | 2012-02-09 | 2012-03-09 |
| 02 | hamza | **** | 2012-04-10 | 0000-00-00 | 0000-00-00 |
| 03 | sam | **** | 2012-04-15 | 0000-00-00 | 0000-00-00 |
+----+-------+----------+---------------+------------+------------+
i have to apply two queries
one to delete data when limit date = current date
second to delete data when user login_date is ‘0000-00-00’ and its (register_date – current date) >= 30
my first query is implementing properly
in my second query i am finding no of days by subtracting register_date from current date, if no of days greater than or equal to 30 then delete that user.
my problem is that when an any single user return no of days >= 30 then all user of login_date =’0000-00-00′ get deleted.
here is my code
//code for delete user where (current date - register date)>=30
$qry="select * from seeker where login_date='0000-00-00'";
$rs= mysql_query($qry, $con);
$res=mysql_num_rows($rs);
echo "total rows of zero dates "."".$res;
echo "<br>";
if($res!=0)
{
echo "user exist of date='0000-00-00'";
echo"<br>";
$qqq="select * from seeker where login_date='0000-00-00'";
$rsq= mysql_query($qqq, $con);
while($resq=mysql_fetch_array($rsq))
//echo $resq;
{
$r=$resq['c_date'];
echo $r;
$reg_date = strtotime($r);
echo "<br>";
//current date
$c= date("Y-m-d");
echo $c;
//echo "current date".""."<br>";
$current_date = strtotime($c);
echo "<br>";
//date difference
$datediff = $current_date - $reg_date;
$days = floor($datediff/(60*60*24));
echo "days"."".$days;
echo "<br>";
if($days>=30)
{
$qry1="delete from seeker where $days = '30'";
$rs1= mysql_query($qry1, $con);
echo $qry1;
echo "<br>";
echo "<br>";
}
}
}
// code for delete user where current date = limit date
$qry3="select * from seeker where current_date = limit_date";
$rs3= mysql_query($qry3, $con);
$res3=mysql_num_rows($rs3);
if($res3!=0)
{
$q= "delete from seeker where current_date = limit_date";
$rq=mysql_query($q, $con);
echo "$q";
echo "<br>";
}
please tell me where i made mistake .
i want to delete only that user whose days >=30, but it deleted all user of login_date =’0000-00-00′
for example if current date is 2012-01-10. it will not delete user
if current date is 2012-05-10.. it must delete only "hamza" but it delets "sam" too
please help me, i am student and new in php. thanks in advance
Please try
DATEDIFF(time1 ,time2)function andNOW()function in query as given belowthanks.