Цитата(bars80080 @ 6.2.2009, 18:50) | искать в поисковике, либо здесь на форуме темы "постраничная навигация" |
Я только начинаю сооружать сайты с использованием php и mysql поэтому пока тяжеловато. Простой сайт, единственная сложность в том, что он фиксированный по вертикали. Изначально был статичным, а теперь товарищ попросил добавить гостевую книгу и... Теперь появились вопросы. На сайте есть страница с списком литературных произведений, вроде бы как оглавление и из этого оглавление посетитель должен попадать на страницу, по выбранной им ссылке. Кажется, что трудностей нет, я создал таблицу в БД и код Код | <?php /*--------------------------------ПОДКЛЮЧАЮСЬ К БАЗЕ ДАННЫХ ---------------------------------*/
include ("blocks/db.php"); $result = mysql_query ("SELECT title,meta_d,meta_k,text FROM settings WHERE page='proza'",$db); $myrow = mysql_fetch_array ($result); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="description" content="<?php echo $myrow['meta_d']; ?>" /> <meta name="keywords" content="<?php echo $myrow['meta_k']; ?>" /> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <link rel="stylesheet" type="text/css" href="/style/style.css"> <title><?php echo $myrow['title']; ?></title> </head>
<body> <div id="main_bg"> <div id="author"> <?php include ("blocks/author.php");/*----------------ПОДКЛЮЧАЮ ШАПКУ "Авторский сайт Яна М." -------------*/ ?> </div>
<div id="content">
<?php $result77 = mysql_query("SELECT str FROM options", $db); $myrow77 = mysql_fetch_array($result77); $num = $myrow77["str"]; // Извлекаем из URL текущую страницу @$page = $_GET['page']; // Определяем общее число сообщений в базе данных $result00 = mysql_query("SELECT COUNT(*) FROM proza"); $temp = mysql_fetch_array($result00); $posts = $temp[0]; // Находим общее число страниц $total = (($posts - 1) / $num) + 1; $total = intval($total); // Определяем начало сообщений для текущей страницы $page = intval($page); // Если значение $page меньше единицы или отрицательно // переходим на первую страницу // А если слишком большое, то переходим на последнюю if(empty($page) or $page < 0) $page = 1; if($page > $total) $page = $total; // Вычисляем начиная с какого номера // следует выводить сообщения $start = $page * $num - $num; // Выбираем $num сообщений начиная с номера $start
$result = mysql_query ("SELECT id,title,date,opisanie FROM proza ORDER BY id LIMIT $start, $num",$db); $myrow = mysql_fetch_array ($result);
do { printf
("<table> <tr> <td colspan='2' class='nazvanie'><a href='view_proza.php?id=%s'>%s</a></td> </tr> <tr> <td class='opisanie'>%s</td> <td class='date'>%s</td> </tr> </table>",$myrow ['id'], $myrow ['title'], $myrow['opisanie'], $myrow['date']); } while ($myrow = mysql_fetch_array ($result));
// Проверяем нужны ли стрелки назад if ($page != 1) $pervpage = '<a href=proza.php?page=1>Первая</a> | <a href=proza.php?page='. ($page - 1) .'>Предыдущая</a> | '; // Проверяем нужны ли стрелки вперед if ($page != $total) $nextpage = ' | <a href=proza.php?page='. ($page + 1) .'>Следующая</a> | <a href=proza.php?page=' .$total. '>Последняя</a>';
// Находим две ближайшие станицы с обоих краев, если они есть // if($page - 5 > 0) $page5left = ' <a href=proza.php?page='. ($page - 5) .'>'. ($page - 5) .'</a> | '; // if($page - 4 > 0) $page4left = ' <a href=proza.php?page='. ($page - 4) .'>'. ($page - 4) .'</a> | '; if($page - 3 > 0) $page3left = ' <a href=proza.php?page='. ($page - 3) .'>'. ($page - 3) .'</a> | '; if($page - 2 > 0) $page2left = ' <a href=proza.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | '; if($page - 1 > 0) $page1left = ' <a href=proza.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
// if($page + 5 <= $total) $page5right = ' | <a href=proza.php?page='. ($page + 5) .'>'. ($page + 5) .'</a>'; // if($page + 4 <= $total) $page4right = ' | <a href=proza.php?page='. ($page + 4) .'>'. ($page + 4) .'</a>'; if($page + 3 <= $total) $page3right = ' | <a href=proza.php?page='. ($page + 3) .'>'. ($page + 3) .'</a>'; if($page + 2 <= $total) $page2right = ' | <a href=proza.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>'; if($page + 1 <= $total) $page1right = ' | <a href=proza.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
// Вывод меню если страниц больше одной
if ($total > 1) { Error_Reporting(E_ALL & ~E_NOTICE); echo "<div id=\"strelki\">"; echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage; echo "</div>"; }
?> </div> <div id="main_menu"> <?php include ("blocks/main_menu.php"); /*--------ПОДКЛЮЧАЮ МЕНЮ "Проза Стихи Записи Ссылки Почта" -----*/?> </div> </div> </body> </html>
|
Страница с оглавлением работает, постраничная навигация работает, но теперь не знаю как написать код к странице с текстом, на который я попадаю, если выбираю одну из ссылок в оглавлении. Проблема в том , что сайт фиксированный по вертикали, а текс большой. Я только начинаю программировать) Искал. С постраничной навигацией в общем, я разобрался, но как же быть с контентом на 80 стр., который надо как-то разбить и пронумеровать?!
|