Intereting Posts
Множественная вставка MYSQL в codeigniter Увеличить текущую дату на 5 дней CakePHP – контроллер или контроллер нет? PHP Script не работает в WordPress правильно Опрос Ajax PHP: выбор содержимого с html-страницы с помощью xpath () Является ли результат strtotime () изменен в зависимости от часового пояса? Artisan служит для отправки активов с включенными заголовками ответов Могут ли типы параметров быть специализированными в PHP PHP: безопасна ли функция implode () для многобайтовых строк? PHP Неустранимая ошибка: Class 'Controllercommon' не найден в C: \ Inetpub \ Low Vision – Филиппины \ vqmod \ vqcache \ vq2-system_engine_loader.php в строке 28 Есть ли специальная инициализатор объекта в PHP, как сейчас, на C #? Пределы использования API API Карт Google для каждого посетителя веб-сайта или на веб-сервере? PDO-запрос возвращает много кодов символов \ uXXXX, которые я не могу преобразовать в символы Unicode jimport не работает в Joomla 1.5

Показать результаты за последние 7 дней PHP

То, что я пытаюсь сделать, это отображать статьи за последние 30 дней, но код, который у меня есть, продолжает давать мне ошибку mysql_fetch_assoc, которая затем возвращается к моему запросу

Это код:

$sql = mysql_query("SELECT * FROM table WHERE DATE (datetime) = (CURDATE() - INTERVAL 7 DAY) ORDER BY ID DESC"); while ($runrows = mysql_fetch_array($sql)) 

Может ли кто-нибудь дать мне указания о том, как правильно заставить код работать правильно? Вот ошибка

Предупреждение: mysql_fetch_array (): предоставленный аргумент не является допустимым ресурсом результата MySQL

Попробуй это:

 $sql = mysql_query("SELECT * FROM table WHERE DATE (datetime) > DATE_SUB(CURDATE(), INTERVAL 7 DAY) ORDER BY ID DESC"); 

Я изменил две вещи:

  1. Использование DATE_SUB() для вычитания даты.
  2. Использование >= вместо just = для поиска всех дат за последнюю неделю.

Я не думаю, что вам нужно, чтобы вы делали WHERE . Вместо

 WHERE DATE (datetime) = 'CURDATE() - INTERVAL 30 DAY' 

пытаться:

 WHERE DATE (datetime) >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) 

Что-то вроде:

 $sql = mysql_query("SELECT * FROM table WHERE DATE BETWEEN '" . date('Ym-d',strtotime('now')) . "' AND '" . date('Ym-d',strtotime('-30 days')) . "' ORDER BY ID DESC" ); 

Должно получиться что-то вроде этого:

 SELECT * FROM table WHERE DATE BETWEEN '2011-07-26' AND '2011-06-26' ORDER BY ID DESC 

Обратите внимание, что date('Ym-d') – это способ записи дня в вашей базе данных. Так измените его так, как это похоже на вашу БД.