2013-07-31 3 views
-1

Все еще изучаю PHP, поэтому мой код, скорее всего, сделан неправильно, но я могу понять, что я сделал неправильно в приведенном ниже коде. верните 1 строку, но она ничего не вернет.Выбор всех строк, где дата составляет 1 месяц и 1 неделя и старше - MySql/PHP

Я хочу выбрать все строки, которые составляют 1 месяц и 1 неделю или более, начиная с сегодняшней даты и не являются NULL.

rdate хранится в виде даты и в формате 0000-00-00

Любая помощь будет высоко ценится. Благодаря

// получает сегодня число

$today = date("Y-m-d"); 

// Разрабатывает 1 месяц с сегодняшнего дня.

$old = date("Y-m-d", strtotime($today." -1 Months")); 

// Выполняется 1 месяц и 1 неделя с сегодняшнего дня.

$oldweek = date("Y-m-d", strtotime($old." -1 Weeks")); 

// этот запрос должен выбрать все строки, где rdate равно или меньше, Что в исторической неделе и не равна дате по умолчанию.

/* Get status details from database */ 
$sql = "SELECT * 
    FROM lpfus_status WHERE rdate < '$oldweek' AND !='0000-00-00' ORDER BY rdate DESC"; 
+0

http://stackoverflow.com/a/13912197/1719246 проверить ответ – softsdev

+0

возможный дубликат [Display записи старшем чем 3 месяца в sql] (http://stackoverflow.com/questions/13912035/display-record-older-than-3-months-in-sql) – NDM

+0

softsdev - я буду смотреть на это так, хотя я считаю, что это все равно вернет все строки, которые являются 0000-00-00? – user1936399

ответ

0

Вы отсутствуют колонки здесь AND != '0000-00-00'

Пожалуйста, попробуйте следующее:

$sql = "SELECT * FROM lpfus_status WHERE rdate < '$oldweek' AND rdate != '0000-00-00' ORDER BY rdate DESC"; 
+0

Спасибо vinodadhikary, даже посмотрев на него в течение 2 часов, я didn Не обращай внимания! – user1936399

+0

@ user1936399, рад, что вы его работали. – vee