Как да взема последните резултати от заявката с LIMIT?

misho

Registered
Имам в БД списък с дати и данни към тях. Искам да взема последните 7 дни, като са подредени от изминалите към днешния. Как ще стане? Пиша това:
Код:
... ORDER BY `date` DESC LIMIT 0, 7
Но това разбира се връща първите 7, а не последните 7 резултата. Как ще стане да взема последните 7 записа? Ако променя подредбата на ASC мога да ги взема пак с LIMIT 0, 7, но тогава са ми в обратния ред - най-напред днес, а след това изминалите дни, а аз не искам така.
 
Аз се сещам за този вариянт:

<?php
// include "конфиг файл";
$a = mysql_query("SELECT * FROM таблица ORDER by `date`");
$b = mysql_num_rows($a);
$ot = ($b - 7);
$do = $b;
$c = mysql_query("SELECT * FROM таблицата ORDER by `date` LIMIT $ot, $do");
while($r = mysql_fetch_array($c))
{
//извеждаш информацията
}
?>

Не съм го тествал но мисля че ще работи.
Първо преброяваш всичките записи.
След това правиш променлива (число) която е равна на записите - 7 (в случая ако са 50 записа променливата ще бъде 43).
И друга променлива която е равна на общия брой записи (в случая 50).
И после лимита става от 43 до 50 (в примера който ти давам , а като го изпълниш кода трябва да ти изкара както искаш).
А ако нещо не е наред добави DESC/ASC.
 

Back
Горе