2015-12-17 7 views
2

В моей таблице у меня есть записи о дате, такие как 02-04-2016, 03-01-2016 и 04-01-2016, если я на 03-01-2016, я хочу, чтобы предыдущая запись была 02- 01-2016 Но это дает мне 01-01-2016, что является первой записью моего стола. Независимо от того, на какую дату я нахожусь.Предыдущая запись в MySql

if(isset($_POST['place'])){ 
$place  = $_POST['place']; 
$date  = date("Y-m-d", strtotime($_POST['date'])); 
$classtype = $_POST['classtype']; 
$getdate = mysql_query("SELECT * FROM `class` WHERE `city`='$place' AND `clastype`='$classtype' AND `classdate`<'$date' limit 0,1")or die(mysql_error()); 
$mydt  = mysql_fetch_array($getdate); 

$mdt = date("d-m-Y", strtotime($mydt[classdate])); 
echo $mdt; 
} 
+1

попробовать 'SELECT * FROM' class' WHERE '' международное = '$ место' AND 'clastype' = '$ ClassType' AND' classdate '<'$ date' order by classdate desc limit 0,1' –

+0

nope not working @AmitSarwara все еще прыгает с первого –

+0

Для простой жизни, почему бы не хранить даты с использованием типа данных даты? И обратите внимание, что LIMIT без ORDER BY довольно бессмысленна. – Strawberry

ответ

1
"SELECT * FROM `class` WHERE `city`='$place' AND `clastype`='$classtype' AND `classdate`<'$date' order by `classdate` desc limit 0,1" 

Пожалуйста, используйте заказ по п.

+0

Лучше на заказ по дате, не так ли? –

+0

порядок по дате не работает! –

+0

упорядочить по классу, потому что поле даты является классом. –

0

Использование предложения ORDER BY

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

SELECT * 
FROM `class` 
WHERE `city`='$place' AND `clastype`='$classtype' AND 
     `classdate`<'$date' 
ORDER BY id DESC 
LIMIT 0,1 
Смежные вопросы