ребят как тут сделать постраничную навигацию? а то у меня тока 10 строк выводит и все Код (Text): $num = 10; $result = mysql_query("SELECT COUNT(*) as cnt FROM `".prefix."icq` WHERE `dig`='".$digs."'"); $refs = mysql_result($result, 0, "cnt"); $total = intval(($refs - 1) / $num) + 1; if(!$page || $page < 0) $page = 1; if($page > $total) $page = $total; $start = $page * $num - $num; $result = mysql_query("SELECT * FROM `".prefix."icq` WHERE `dig`='".$digs."' ORDER by `number` DESC LIMIT ".$start.", ".$num."");
metadon на экран хочу вывести саму навигацию, ну что то мне подсказывает подсознание что тут она дописана не до конца, верно?
ребят написал навигацию до конца ну есть проблема( помогите разобраться вот сам скрипт Код (Text): $num = 5; $page = $_GET['page']; $result = mysql_query("SELECT COUNT(*) FROM `".prefix."icq` WHERE `dig`='".$digs."'"); $temp = mysql_fetch_array($result); $posts = $temp[0]; $total = (($posts - 1) / $num) + 1; $total = intval($total); $page = intval($page); if(empty($page) or $page < 0) $page = 1; if($page > $total) $page = $total; $start = $page * $num - $num; $result = mysql_query("SELECT * FROM `".prefix."icq` WHERE `dig`='".$digs."' ORDER by `number` DESC LIMIT ".$start.", ".$num.""); вот вывод Код (Text): // Проверяем нужны ли стрелки назад if ($page != 1) $pervpage = '<a href=index.php?page=1>Первая</a> | <a href=index.php?page='. ($page - 1) .'>Предыдущая</a> | '; // Проверяем нужны ли стрелки вперед if ($page != $total) $nextpage = ' | <a href=index.php?page='. ($page + 1) .'>Следующая</a> | <a href=index.php?page=' .$total. '>Последняя</a>'; // Находим две ближайшие станицы с обоих краев, если они есть if($page - 5 > 0) $page5left = ' <a href=index.php?page='. ($page - 5) .'>'. ($page - 5) .'</a> | '; if($page - 4 > 0) $page4left = ' <a href=index.php?page='. ($page - 4) .'>'. ($page - 4) .'</a> | '; if($page - 3 > 0) $page3left = ' <a href=index.php?page='. ($page - 3) .'>'. ($page - 3) .'</a> | '; if($page - 2 > 0) $page2left = ' <a href=index.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | '; if($page - 1 > 0) $page1left = '<a href=index.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | '; if($page + 5 <= $total) $page5right = ' | <a href=index.php?page='. ($page + 5) .'>'. ($page + 5) .'</a>'; if($page + 4 <= $total) $page4right = ' | <a href=index.php?page='. ($page + 4) .'>'. ($page + 4) .'</a>'; if($page + 3 <= $total) $page3right = ' | <a href=index.php?page='. ($page + 3) .'>'. ($page + 3) .'</a>'; if($page + 2 <= $total) $page2right = ' | <a href=index.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>'; if($page + 1 <= $total) $page1right = ' | <a href=index.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>'; // Вывод меню если страниц больше одной if ($total > 1) { Error_Reporting(E_ALL & ~E_NOTICE); echo "<div class=\"pstrnav\">"; echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage; echo "</div>"; ошибка такая Notice: Undefined index: page in \modules\icq\index.php on line 712 и при переходе по навигации пустая страница /m/icq/index.php?page=2 получается что page не видит, как исправить?
переписал скрипт получилось так Код (Text): if(!$digs){ $num = 10; $result = mysql_query("SELECT COUNT(*) as cnt FROM `".prefix."icq`"); $refs = mysql_result($result, 0, "cnt"); $total = intval(($refs - 1) / $num) + 1; if(!$page || $page < 0) $page = 1; if($page < $total) $page = $total; $start = $page * $num - $num; $result = mysql_query("SELECT * FROM `".prefix."icq` ORDER by `number` DESC LIMIT ".$start.", ".$num.""); } else { $num = 10; $result = mysql_query("SELECT COUNT(*) FROM `".prefix."icq` WHERE `dig`='".$digs."'"); $temp = mysql_fetch_array($result); $posts = $temp[0]; $total = (($posts - 1) / $num) + 1; $total = intval($total); $page = intval($page); if(empty($page) or $page < 0) $page = 1; if($page > $total) $page = $total; $start = $page * $num - $num; $result = mysql_query("SELECT * FROM `".prefix."icq` WHERE `dig`='".$digs."' ORDER by `number` DESC LIMIT ".$start.", ".$num.""); ?> <? // Проверяем нужны ли стрелки назад if ($page != 1) $pervpage = '<a href=index.php?page=1>Первая</a> | <a href=index.php?page='. ($page - 1) .'>Предыдущая</a> | '; // Проверяем нужны ли стрелки вперед if ($page != $total) $nextpage = ' | <a href=index.php?page='. ($page + 1) .'>Следующая</a> | <a href=index.php?page=' .$total. '>Последняя</a>'; // Находим две ближайшие станицы с обоих краев, если они есть if($page - 5 > 0) $page5left = ' <a href=index.php?page='. ($page - 5) .'>'. ($page - 5) .'</a> | '; if($page - 4 > 0) $page4left = ' <a href=index.php?page='. ($page - 4) .'>'. ($page - 4) .'</a> | '; if($page - 3 > 0) $page3left = ' <a href=index.php?page='. ($page - 3) .'>'. ($page - 3) .'</a> | '; if($page - 2 > 0) $page2left = ' <a href=index.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | '; if($page - 1 > 0) $page1left = '<a href=index.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | '; if($page + 5 <= $total) $page5right = ' | <a href=index.php?page='. ($page + 5) .'>'. ($page + 5) .'</a>'; if($page + 4 <= $total) $page4right = ' | <a href=index.php?page='. ($page + 4) .'>'. ($page + 4) .'</a>'; if($page + 3 <= $total) $page3right = ' | <a href=index.php?page='. ($page + 3) .'>'. ($page + 3) .'</a>'; if($page + 2 <= $total) $page2right = ' | <a href=index.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>'; if($page + 1 <= $total) $page1right = ' | <a href=index.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>'; // Вывод меню если страниц больше одной if ($total > 1) { Error_Reporting(E_ALL & ~E_NOTICE); echo "<div class=\"pstrnav\">"; echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage; echo "</div>"; } ?> ошибки исправил, теперь 1 вопрос, при переходе по навигации страница пустая, получается такая ссылка /m/icq/index?digs=7page=2 как это исправить? Добавлено спустя 1 минуту 32 секунды: сама ссыль где видна информация /m/icq/index?digs=7
Разделить параметры амперсандом: /m/icq/index?digs=7&page=2. А вашу страшную пагинацию можно сделать гораздо симпатичнее: Код (PHP): for ($i=max(2, $page-5); $i<=min($total-1; $page+5); $i++) if ($i != $page) $pagination[] = "<a href='index.php?page=$i'>$i</a>"; Потом еще добавляете $pervpage и $nextpage и соединяете путем join(' | ', $pagination);