Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Постраничная навигация ничего не выводит
 
 автор: Golovastik   (21.09.2010 в 18:34)   письмо автору
 
 

Решил опробовать другой,более правильный вариант, но он у меня не сработал.
По видеоуроку попробовал написать постраничную навигацию, для теста как там было указано создал 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

d     str
1     3


Файл 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 0$page5left ' <a href=view_cat.php?cat='.$cat.'&page='. ($page 5) .'>'. ($page 5) .'</a> | ';
if(
$page 0$page4left ' <a href=view_cat.php?cat='.$cat.'&page='. ($page 4) .'>'. ($page 4) .'</a> | ';
if(
$page 0$page3left ' <a href=view_cat.php?cat='.$cat.'&page='. ($page 3) .'>'. ($page 3) .'</a> | ';
if(
$page 0$page2left ' <a href=view_cat.php?cat='.$cat.'&page='. ($page 2) .'>'. ($page 2) .'</a> | ';
if(
$page 0$page1left '<a href=view_cat.php?cat='.$cat.'&page='. ($page 1) .'>'. ($page 1) .'</a> | ';

if(
$page <= $total$page5right ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page 5) .'>'. ($page 5) .'</a>';
if(
$page <= $total$page4right ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page 4) .'>'. ($page 4) .'</a>';
if(
$page <= $total$page3right ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page 3) .'>'. ($page 3) .'</a>';
if(
$page <= $total$page2right ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page 2) .'>'. ($page 2) .'</a>';
if(
$page <= $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>";
}
?>


При нажатии на один из пунктов меню, ничего не выводится, что делать?

  Ответить  
 
 автор: tvv123456   (21.09.2010 в 19:06)   письмо автору
 
   для: Golovastik   (21.09.2010 в 18:34)
 

Вообще до ужаса знакомый скрипт :)

Вы ничего сами не выводите вот и не выводиться :)
вы провели запрос к базе
:<?
$result 
mysql_query("SELECT id,text FROM lessons WHERE cat='$cat' ORDER BY id LIMIT $start$num",$connect); 


А вот где вы выводите на страницу результаты этого запроса я не вижу

  Ответить  
 
 автор: Golovastik   (21.09.2010 в 20:18)   письмо автору
 
   для: tvv123456   (21.09.2010 в 19:06)
 

А как вывести правильно?

  Ответить  
 
 автор: Slo_Nik   (21.09.2010 в 22:54)   письмо автору
 
   для: Golovastik   (21.09.2010 в 20:18)
 

>А как вывести правильно?
А как Вы обычно выводите результат запроса в браузер? Вот так и здесь выводите.

  Ответить  
 
 автор: TavRoX   (22.09.2010 в 17:19)   письмо автору
 
   для: Slo_Nik   (21.09.2010 в 22:54)
 

до ужаса знакомый скрипт который был у попова) я забил на него и сделал другой)
более лучший и удобный

  Ответить  
 
 автор: bibika   (23.09.2010 в 21:41)   письмо автору
 
   для: TavRoX   (22.09.2010 в 17:19)
 

До ужаса знакомый скрипт. Я его использую в 2 проектах и очень он мне нравится. Простой и легко настроить. Брал я его здесь на форуме.

  Ответить  
 
 автор: uvajs   (23.09.2010 в 23:13)   письмо автору
 
   для: Golovastik   (21.09.2010 в 18:34)
 

Что у вас не получается? этот скрипт у меня работает не плохо...

  Ответить  
 
 автор: Golovastik   (26.09.2010 в 03:17)   письмо автору
 
   для: 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'].'&nbsp;'.$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.'&nbsp;&nbsp;';
if(
$page>5) {
echo 
'<a href=./?page=1>1</a>'.' ...';
}
echo 
'&nbsp;&nbsp;';

//$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 
'&nbsp;|&nbsp;';
}


if(
$page>&&  $page!=$chislo_str  &&  $page!=$chislo_str-1
&&  $page!=$chislo_str-2  &&  $page!=$chislo_str-
&&  $page!=$chislo_str-&&  $page!=$chislo_str-5
)
echo 
'...'.'<a href=./?page='.$chislo_str.'>'.$chislo_str.'</a>'.'&nbsp;&nbsp;';


echo 
$vpered;

?>

  Ответить  
 
 автор: uvajs   (26.09.2010 в 12:03)   письмо автору
 
   для: 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) > )

{

$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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class='comment1'>Просмотров: %s</span>&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp;Комментарий: %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 0$page3left ' <a href=lessons.php?'.'page='. ($page 3) .'>'. ($page 3) .'</a> | ';
if(
$page 0$page2left ' <a href=lessons.php?'.'page='. ($page 2) .'>'. ($page 2) .'</a> | ';
if(
$page 0$page1left ' <a href=lessons.php?'.'page='. ($page 1) .'>'. ($page 1) .'</a> | ';


if(
$page <= $total$page3right ' | <a href=lessons.php?'.'page='. ($page 3) .'>'. ($page 3) .'</a>';
if(
$page <= $total$page2right ' | <a href=lessons.php?'.'page='. ($page 2) .'>'. ($page 2) .'</a>';
if(
$page <= $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>";
}
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования