|
|
|
| Решил опробовать другой,более правильный вариант, но он у меня не сработал.
По видеоуроку попробовал написать постраничную навигацию, для теста как там было указано создал 2 таблицы:
Таблица lessons.php
id cat text
1 1 Петя
2 1 Фрося
3 1 Борис
4 1 Анатолий
5 1 Банан
6 1 Тарзан
7 1 Макс
8 1 Министр
9 1 Факел
10 1 Природа
11 1 Листья
12 1 Друзья
13 1 Морковь
14 1 Титаник
15 1 Мел
16 1 Натрий
17 1 Вуглевод
18 1 Кислород
19 1 Дартаньян
20 1 Поезд
|
Таблица options.php
Файл database.php
<?php
$server = 'localhost'; //Имя сервера
$user = 'privet'; //Логин
$password = '12345'; //Пароль
$db = 'video';
$table = 'lessons'; //Название таблицы
$error_database = '<h2>Произошла ошибка в базе данных,<br/>
в ближайшее время она будет устранена!</h2>';
$connect = mysql_connect($server,$user,$password);
if(!$connect){
echo $error_database;
exit;
};
//$connect по какому соединению мы работаем
$select = mysql_select_db($db,$connect);
if(!$select){
echo $error_database;
exit;
};
?>
|
Код самой постраничной навигации, файл cat_view.php
<?php
include '../blocks/database.php'; /*Соединяемся с Базой Данных*/
$result77 = mysql_query("SELECT str FROM options", $connect);
$myrow77 = mysql_fetch_array($result77);
$cat = 1;
$num = $myrow77["str"];
// Извлекаем из URL текущую страницу
@$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result00 = mysql_query("SELECT COUNT(*) FROM lessons WHERE cat='$cat'");
$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,text FROM lessons WHERE cat='$cat' ORDER BY id LIMIT $start, $num",$connect);
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=view_cat.php?cat='.$cat.'&page=1>Первая</a> | <a href=view_cat.php?cat='.$cat.'&page='. ($page - 1) .'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 1) .'>Следующая</a> | <a href=view_cat.php?cat='.$cat.'&page=' .$total. '>Последняя</a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href=view_cat.php?cat='.$cat.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 5 <= $total) $page5right = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $total) $page4right = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $total) $page3right = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=view_cat.php?cat='.$cat.'&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>";
}
?>
|
При нажатии на один из пунктов меню, ничего не выводится, что делать? | |
|
|
|
|
|
|
|
для: Golovastik
(21.09.2010 в 18:34)
| | Вообще до ужаса знакомый скрипт :)
Вы ничего сами не выводите вот и не выводиться :)
вы провели запрос к базе
:<?
$result = mysql_query("SELECT id,text FROM lessons WHERE cat='$cat' ORDER BY id LIMIT $start, $num",$connect);
|
А вот где вы выводите на страницу результаты этого запроса я не вижу | |
|
|
|
|
|
|
|
для: tvv123456
(21.09.2010 в 19:06)
| | А как вывести правильно? | |
|
|
|
|
|
|
|
для: Golovastik
(21.09.2010 в 20:18)
| | >А как вывести правильно?
А как Вы обычно выводите результат запроса в браузер? Вот так и здесь выводите. | |
|
|
|
|
|
|
|
для: Slo_Nik
(21.09.2010 в 22:54)
| | до ужаса знакомый скрипт который был у попова) я забил на него и сделал другой)
более лучший и удобный | |
|
|
|
|
|
|
|
для: TavRoX
(22.09.2010 в 17:19)
| | До ужаса знакомый скрипт. Я его использую в 2 проектах и очень он мне нравится. Простой и легко настроить. Брал я его здесь на форуме. | |
|
|
|
|
|
|
|
для: Golovastik
(21.09.2010 в 18:34)
| | Что у вас не получается? этот скрипт у меня работает не плохо... | |
|
|
|
|
|
|
|
для: uvajs
(23.09.2010 в 23:13)
| | Вот попробовал сделать, но получается немного не то, что я хочу, а хочу я такое, как увидел у одних на сайте,вот фото:
[url="http://ipicture.ru/uploads/100926/T4IeilKxZs.jpg"]http://ipicture.ru/uploads/100926/T4IeilKxZs.jpg[/url]
Пробовал не получается так сделать,не могу понять как так сделать,чтоб например я на 7 странице, чтоб
первые 5 пунктов кроме первого были 3 точки, а когда перешел к первому пункту, эти 3 точки пропадали.
Вот так:
http://ipicture.ru/uploads/100926/rgpiRVFV8D.jpg
Вот код который на данный момент сделал,чего-то не выходит,если кто знает помогите разобраться как сделать.
[u]Файл index.php[/u]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Проба</title>
<style type="text/css">
.knopka_nazad1{text-decoration:underline; font-size:18px; color:black; font-family:Tahoma; }
.knopka_nazad2{text-decoration:none; font-size:18px; color:gray; font-family:Tahoma;}
.knopka_vpered1{text-decoration:underline; font-size:18px; color:black; font-family:Tahoma;}
.knopka_vpered2{text-decoration:none; font-size:18px; color:gray; font-family:Tahoma;}
</style>
</head>
<body>
</body>
</html>
<?php
include 'database.php'; /*Соединяемся с Базой Данных*/
//Число постов выводящих на странице
$num = 3;
if(empty($page)){
die('<p style="color:red; font-size:24px;">Ошибка! Неверный URL адресс!</p>');
}
$page = $_GET['page'];
$result = mysql_query("select COUNT(*) FROM lessons",$connect);
$posts = mysql_result($result,0);
//Находим общее количество страниц
$chislo_str = intval(($posts-1)/$num)+1;
$page = intval($page);
//empty($page) Если переменной не существует или ее значение равно нулю
if(empty($page) or $page<0) $page = 1;
if($page > $chislo_str) $page = $chislo_str;
// Если ввести $page=7 тогда 7*3-3=18
//с 18 поста будет выводится пост 18,19,20 на странице №7
$start = $page * $num - $num;
$result = mysql_query("SELECT * FROM lessons LIMIT $start, $num",$connect);
// В цикле переносим результаты запроса в массив $postrow
while ( $postrow[] = mysql_fetch_array($result));
//Вывод постов
for($i = 0; $i < $num; $i++)
{
if(isset($postrow[$i]['id'])) echo $postrow[$i]['id'].' '.$postrow[$i]['text'].'<br/>';
}
//------------------------------------------------
// Стрелка назад
if($page>1)
$nazad= '<a class="knopka_nazad1" href= ./?page='.($page-1).'>Назад</a>';
else $nazad= '<span class="knopka_nazad2">Назад</span>';
//Стрелка вперед
if($page<$chislo_str)
$vpered = '<a class="knopka_vpered1" href= ./?page='.($page + 1).'>Вперёд</a>';
else $vpered= '<span class="knopka_vpered2">Вперёд</span>';
// Вывод меню
echo $nazad.' ';
if($page>5) {
echo '<a href=./?page=1>1</a>'.' ...';
}
echo ' ';
//$mustang = array();
for($i=($page-5>0)?($page-5):1; ($i<=$page+5)&&$i<=$chislo_str; $i++)
{
if($i==$page) { echo '<b>'.$i.'</b>'; }
else { echo '<a href= ./?page='.$i.'>'.$i.'</a>'; }
echo ' | ';
}
if($page>1 && $page!=$chislo_str && $page!=$chislo_str-1
&& $page!=$chislo_str-2 && $page!=$chislo_str-3
&& $page!=$chislo_str-4 && $page!=$chislo_str-5
)
echo '...'.'<a href=./?page='.$chislo_str.'>'.$chislo_str.'</a>'.' ';
echo $vpered;
?>
|
| |
|
|
|
|
|
|
|
для: Golovastik
(26.09.2010 в 03:17)
| | >Вот попробовал сделать, но получается немного не то, что я хочу, а хочу я такое, как увидел у одних на сайте,вот фото:
>[url="http://ipicture.ru/uploads/100926/T4IeilKxZs.jpg"]http://ipicture.ru/uploads/100926/T4IeilKxZs.jpg[/url]
>
>Пробовал не получается так сделать,не могу понять как так сделать,чтоб например я на 7 странице, чтоб
>первые 5 пунктов кроме первого были 3 точки, а когда перешел к первому пункту, эти 3 точки пропадали.
>Вот так:
>http://ipicture.ru/uploads/100926/rgpiRVFV8D.jpg
>
посмотрите вот пример, у меня скрипт работает как на вашей картинке
<?
$result77 = mysql_query("SELECT str FROM options", $db);
$myrow77 = mysql_fetch_array($result77);
$num = $myrow77["str"];
@$page = $_GET['page'];
$result00 = mysql_query("SELECT COUNT(*) FROM data");
$temp = mysql_fetch_array($result00);
$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;
$result11 = mysql_query("SELECT * FROM categories WHERE id='$rub'",$db);
$myrow11 = mysql_fetch_array($result11);
$result1 = mysql_query("SELECT d.`id`, d.`title`, d.`description`, d.`mini_img`, d.`date`, d.`author`, d.`view`, d.`rub`,COUNT(c.`id`) AS count FROM `data` AS d LEFT JOIN `comments` AS c ON d.`id`= c.`post` GROUP BY d.`id` ORDER BY id DESC LIMIT $start, $num");
if (@mysql_num_rows($result1) > 0 )
{
$myrow1 = mysql_fetch_array($result1);
do
{
printf ("<div class='content3'>
<a href='lessons.php?rub=%s&id=%s'>
<img src='%s' class='mini_img' align='left' alt='*'></a>
<p class='h4'><a href='lessons.php?rub=%s&id=%s'>%s</a></p>
<p>Добавил: %s</p><br clear='left'>
<span>%s</span><br>
<div class='line_f'> </div>
<table class='author'>
<tr>
<td>
<span class='comment1'>Добавлен: %s</span> <span class='comment1'>Просмотров: %s</span> </span> Комментарий: %s</div></td>
</tr>
</table>
</div>
</div></div></div></div>",$myrow1["rub"],$myrow1["id"],$myrow1["mini_img"],$myrow1["rub"],$myrow1["id"],$myrow1["title"],$myrow1["author"],$myrow1["description"], $myrow1["date"],$myrow1["view"],$myrow1["count"]);
}
while ($myrow1 = mysql_fetch_array($result1));
}
else
{
echo "<p>Неверный запрос, такого категория в базе не существует! Проверьте URL!</p>";
}
if ($page > 4) $pervpage = '<a href=lessons.php?rub='.$rub.'&page=1>Первая</a> | <a href=view_rub.php?rub='.$rub.'&page='. ($page - 1) .'> ';
if ($total > 4){
if ($page != $total) $nextpage = ' <a href=lessons.php?rub='.$rub.'&page='. ($page + 1) .'></a> | <a href=lessons.php?rub='.$rub.'&page=' .$total. '>Последняя</a> '. "<span style='color:999999;'> ($total)</span>";
}
if($page - 3 > 0) $page3left = ' <a href=lessons.php?'.'page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=lessons.php?'.'page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = ' <a href=lessons.php?'.'page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 3 <= $total) $page3right = ' | <a href=lessons.php?'.'page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' | <a href=lessons.php?'.'page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=lessons.php?'.'page='. ($page + 1) .'>'. ($page + 1) .'</a>';
if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<div class=\"pstrnav\">";
echo $pervpage.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$nextpage;
echo "</div>";
}
?>
|
| |
|
|
|