MySQL сравнение не сравнивает

Статус
В этой теме нельзя размещать новые ответы.

Albert22

Старатель
Регистрация
30 Мар 2008
Сообщения
270
Реакции
11
Всем привет

Задача:
Имеется таблица с событиями, нужно в зависимости от запроса вывести или прошедшие или будщие.
Я решил делать так: держать у каждого события его дату в формате Unix, при запросе, например, если нужно будущее событие то взять текущую метку функцией time() и если она меньше чем у события, то оно в будущем, и наоборот.
Всё бы ничего но сложность возникает на этом этапе:
Код:
$timeFilter=check($_REQUEST['timeFilter']);
$time=time();
if($timeFilter=='future'){
$result = mysql_query("SELECT * FROM ".$tableName." WHERE `date`>='".$time."' ORDER BY rate/votes DESC LIMIT $start, $pnum");
}elseif($timeFilter=='past'){
$result = mysql_query("SELECT * FROM ".$tableName." WHERE `date`<'".$time."' ORDER BY rate/votes DESC LIMIT $start, $pnum");
}else{
$result = mysql_query("SELECT * FROM ".$tableName." ORDER BY rate/votes DESC LIMIT $start, $pnum");
}
В базе событие одно - тестовое, по дате оно в будущем. Вне зависимости от запроса оно выдаётся полюбому.
Даже когда я убрал все условия и упростил до
Код:
$result = mysql_query("SELECT * FROM `events` WHERE `date`<'1234137900'");
то есть нарошно сравнил с меньшей датой чтоб его не выбрало, его таки выбрало...

подскажите пожалуйста в чём проблема
П.С. поле `date` - INT
П.П.С. в phpmyadmin'e во вкладке SQL тот же запрос работает нормально, т.е. mysql вернула пустой результат (как и должно быть)...

Спрашиваю здесь так как думаю что вопрос касается MySQL
Если же он из отрасли PHP, пожалуйста, преместите в соответсвующий раздел
 
мистика какая-то:)

попробуйте поле date сделать unsigned, если оно будет signed, то при больших значениях даты оно становится отрицательным
 
В твоём случае лучше использовать формат datetime и сравнивать с NOW()
Код:
SELECT * FROM ".$tableName." WHERE `date`>= NOW()

В базе событие одно - тестовое, по дате оно в будущем. Вне зависимости от запроса оно выдаётся полюбому.
Не видя всего кода и базы можно только гадать.
 
Нет, не мистика, невнимательность, и за неё приношу извинения.
Ниже в коде выполнялось (а не должно было) условие, которое перезаписывало переменную $result.
Это происходило при определённых обстоятельствах, которые я недоглядел и сейчас устраняю.
Всем спасибо (PHP_Masterу как всегда отдельное), решено.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху