MySql. Разбивка на страницы.

Yuriy_S

-=PHP-Club=-
MySql. Разбивка на страницы.

Привет всем!
Собственно помогите по сабжу.
Вроде ставится LIMIT 0,30 к примеру.., в запросе.
Но вот как ссылки то формировать? вообще как оно выглядит?
Помогите, а то я в мускуле совсем не знаю как делать такое..
 

Yuriy_S

-=PHP-Club=-
неужели для того, что бы просто мне разбить сообщения на страницы, то есть то бы не выводить 1000 штук на 1-ой странице, мне нада столько писать, такую громадную функцию?
Мне нужно сделать что бы просто что бы в форуме сообщения бились постранично! и были ссылки типа 1 | 2 | 3 | 4 | 5 | и т.д на страницы.
Можно ли как нибудь просто сделать? без такого кода..., приведите примерчик плиз!
 

RomikChef

Guest
Да, беда...
А сам никак? Бедняжечка. 2 класса начальной школы, двойка по арифметике...

Ну, ты не первый день на форуме, знаешь, что делать...
 

RomikChef

Guest
Можно, Юра, можно...
в 3-4 строчки можно сделать.
Если ты программист. Если ты подходишь к задаче, как программист.
Сначала думаешь, что, вообще, тебе надо, что ты хочешь получить. Если плохое вообращение -рисуешь на бумажке.

потом пытаешься в этом нарисованном найти какую-то закономерность, которую и реализовать с помощью алгоритма.

Ведь, если тебя попросят разложить коробок спичек на кучки по 10 - ты ведь справишься? Надо только проанализироватьсвои действия. И повторить.

Эх... зачем я это все говорю? Не в коня корм.
Найдет себе готовый код, как обезьяна, скопирует, и пойдет дальше "программировать".
 

RomikChef

Guest
молодец!
Как закончишь - приноси показать.
Я свой первоначальный со временем в три раза уменьшил.
 

Yuriy_S

-=PHP-Club=-
сделать то сделал алгоритм, да и код готов.
Но возникла неожиданная, да и непонятная проблема!
ставлю я значит LIMIT и вместо цифт подставляю переменные, ну вот так: LIMIT '$min,$max' - и почему то не понимает он этого, не выводит даже ничего на экран.
А сам код я придумал такой:
$kol=10;
$pages=ceil(mysql_num_rows($result)/$kol);
$min=($kol*$page)-$kol;
$max=$kol*$page;
for($i=0;$i<$page;$i++){
echo "<a href=index.php?page=$i>$i</a>";
}
if($pages==""){
$min=0;
$max=$kol;
}
Ромик, помоги плиз. Код этот я сам на бумажке придумал!
 

hussar

In code we trust!
а если лимит вот так переписать:
LIMIT '$min','$max'
Это же переменные всетаки :)
 

Yuriy_S

-=PHP-Club=-
что то странно! Не работает.
я уже делал просто ради проверки.
Перед запросом ставлю:
$min=0;
$max=5;
$result=mysql_query("SELECT * FROM $tn WHERE id='$mid' LIMIT '$min','$max'",$con);
в чем может быть дело?
 

Yuriy_S

-=PHP-Club=-
BigDaddy!
Спасибо огромное!
Работает, ура!
А я то думал тоже, раз меременные, то в кавычки нада, вот и пихал их в них, буду теперь знать!
 

RomikChef

Guest
в том что тебе сто раз говорили:
выводить, если что-то не работает, сам запрос и mysql_error()
 

RomikChef

Guest
так, как написал hussar - тоже работает.
И тебе лично, Юрик, я настоятельно рекомендую брать все переменные в кавычки. Для надежности.
Только именно ПЕРЕМЕННЫЕ, а не произвольные куски запроса.
 

RomikChef

Guest
Юра прости, но твой код я удалил.
Как неправильный и по сути и корявый по оформлению.

Во-первых, ты неправильно понимаешь второй параметр оператора LIMIT.

Сначала исправь это, потом пойдем дальше.
 

Yuriy_S

-=PHP-Club=-
аааааааааааааа, блин :(
А второй параметр, он же указывает, по какую стоку выбирать, я так понимаю?
 

Yuriy_S

-=PHP-Club=-
вот, я понял!
Значится так!
Первый параметр: указывает сколько нужно пропустить.
Второй параметр: кол-во нужный записей (которые нужно вывести)!
ААА, блин, я кажись нашел свою ошибку!
Там у меня где $max - не нада ничего для него считать, прсто писать $kol вместо него. А $min так и оставить! то есть мы пропускаем $min записей, и выводим 10 записей.
Тогда и нада сделать вот что: $min=$min-1; так как начинается вывод то всегда со сл. числа.
Ну так то вроде все прально?
можно код писать сюда?
 
Сверху