2013-10-28 5 views
1

Может ли кто-нибудь помочь мне с моим кодом?Предложение WHERE

У меня есть таблица в базе данных с именем «Date» с именем поля «MyDate», и содержит следующие данные

2011-02-02 00:00:00 
2011-01-02 00:00:00 
2010-03-02 00:00:00 
2010-01-03 00:00:00 
2008-03-03 00:00:00 
2008-02-03 00:00:00 

Тогда я создать запрос и получить его результат

$result=mysql_query("select DATE(mydate) as Date, subject, update_id, description, image from news ORDER BY Date DESC LIMIT 3")or die (mysql_error()); 

Как вы можете видеть, я получаю только 3 данных из результата $. Теперь, когда я добираюсь до последней строки из результата $, я храню его в сеансе с именем $ _SESSION ['val'] ". Итак, значение $ _SESSION ['val'] - 2010-03-02 00:00:00

После этого я сохраняю этот сеанс в «$ val_date» и создаю запрос. Это мой код:

$val_date = $_SESSION['val']; 

    $result=mysql_query("select DATE(mydate) as Date, subject, update_id, description, image from news WHERE Date < $val_date ORDER BY Date DESC LIMIT 3")or die (mysql_error()); 

    $count = mysql_num_rows($result); 

Проблема заключается в том, $ Count = 0 следует $ Count = 3, так как он будет считывать следующие данные в соответствии с запросом:

2010-01-03 00:00:00 
2008-03-03 00:00:00 
2008-02-03 00:00:00 

Что может быть проблема здесь?

+2

Я могу видеть, как тролли отправляются в тупики: D – Virus721

+0

Пожалуйста, не используйте ключевое слово reserve, столбец не должен 'date' – Imran

ответ

2

Запрос, вероятно, не потому, что вы забыли поставить строку разделитель (одиночные кавычки) на дату, указанную в строке MySQL.

mysql_query("select DATE(date) as Date, subject, update_id, description, image from news WHERE Date < '$val_date' ORDER BY Date DESC LIMIT 3"); 

Но вы должны использовать PDO или mysqli вместо старого устаревшего mysql extenstion.

+0

Я поставил разделитель строк, и он работает! Спасибо! –

0

Не уверен, но вы заявляете, что ваша колонка называется mydate, но вы пишете дату?

Попробуйте

$result=mysql_query("select DATE(mydate) as Date, subject, update_id, description, 
image from news ORDER BY mydate DESC LIMIT 3")or die (mysql_error()); 
+0

У меня ошибка при вводе текста, я уже отредактировал его –

+0

Хорошо, тогда проигнорируйте этот ответ. Возможно, ответ от @andreashager исправит это. –

Смежные вопросы