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

Форум PHP

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

 

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

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

тема: Постраничная навигация - помогите плиз
 
 автор: MarioKasar   (29.03.2005 в 23:56)   письмо автору
 
 

Есть скрипт каталога, скачать можно отсюда:

wwww.anek.dax.ru/d.php?id=0&st=1

Проблема в системе навигации, нужно, чтобы выводилось по 10 страниц ну типа вот так:

<< Назад 1 2 3 4 5 6 7 8 9 10 Вперёд >>

Помогите плиз - очень нужно

   
 
 автор: cheops   (30.03.2005 в 09:45)   письмо автору
 
   для: MarioKasar   (29.03.2005 в 23:56)
 

Постраничный вывод обсуждался большое число раз на форуме, в первую очередь стоит посмотреть специально написанную статью по этому поводу
http://www.softtime.ru/info/articlephp.php?id_article=33
кроме этого имеется ряд тем с обсуждением этого вопроса (сразу оговорюсь, не во всех темах именно тот вид постраничной навигации, который вам нужен)
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=2792
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1883
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=721
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=1282
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=274
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=302
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=745
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=721
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=1169
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=838

   
 
 автор: MarioKasar   (30.03.2005 в 20:12)   письмо автору
 
   для: cheops   (30.03.2005 в 09:45)
 

Так в том то и дело что это всё не подходит - этот скрипт сделан совершенно по другому.
Ну что вам трудно чтоли помочь?

   
 
 автор: cheops   (30.03.2005 в 22:48)   письмо автору
 
   для: MarioKasar   (30.03.2005 в 20:12)
 

С удовольствием помогу, если нет решения в приведённых выше ссылках. Просто мне показалось, что в статье http://www.softtime.ru/info/articlephp.php?id_article=33 как раз то, что вам нужно...
<< < ..2|3|4|5|6.. > >>

или есть какие-то ньюансы?

PS По приведённой выше ссылке, мне почему-то предлагается скачать zip-архив, не могли бы вы описать более подробно, что вы ожидаете от этой системы и подходит ли постраничная навигация, что у нас внизу главной страницы форума?

   
 
 автор: MarioKasar   (30.03.2005 в 23:56)   письмо автору
 
   для: cheops   (30.03.2005 в 22:48)
 

В zip-архиве - скрипт этого каталога - это нужно для того, чтобы вы получили представление о скрипте - проблема с навигацией там в файле index.php
скачайте егго, установите - и посмотрите - для вас это вовсе не проблема - а я уже 5-й день трахаюсь с этой проблемой.
Помогите - ну просто оооооочень надо

   
 
 автор: Loki   (31.03.2005 в 14:43)   письмо автору
 
   для: cheops   (30.03.2005 в 22:48)
 

У вас в статье ошибка:

$posts = mysql_fetch_row($result); 

возвращает массив, а нам нужно число:

$posts = mysql_num_rows($result);

В этом случае все работает:)

   
 
 автор: MarioKasar   (31.03.2005 в 20:30)   письмо автору
 
   для: Loki   (31.03.2005 в 14:43)
 

Ну что - никто не может разобраться с этим скриптом?
Ну там для профи 20 минут работы максимум.... ((

   
 
 автор: Flash5   (31.03.2005 в 21:38)   письмо автору
 
   для: MarioKasar   (31.03.2005 в 20:30)
 

Скажу откровенно, разбирать чужой код, да еще целую программу, это очень нудное дело да и трудоемкое, легче заново написать :-) Что касается навигации то cheops вам предложил очень хорошую статью, мне она очень понравилась, читал дважды.
Желаю удачи
П.С. Я не вижу проблему. Если вы думаете что за вас кто-то будет писать код вы ошибаетесь, вы начните а там уже вам помогут, но ни как наоборот.

   
 
 автор: MarioKasar   (01.04.2005 в 23:02)   письмо автору
 
   для: Flash5   (31.03.2005 в 21:38)
 

Ткм уже давно всё начато!!! Вот как раз закончить-то и нужно - "за вас кто-то будет писать" - слишком громко сказано - там кода всего 3 строчки надо добавить - НО КАК? КАКИЕ???? Вот я и хотел узнать - все статьи, которые вы мне дали - хорошие, но тут совсем другой случай - здесь нужен ИНДИВИДУАЛЬНЫЙ код - хоть 1000 таких ссылок давайте - они НЕ ПОМОГУТ.

   
 
 автор: Loki   (01.04.2005 в 23:15)   письмо автору
 
   для: MarioKasar   (01.04.2005 в 23:02)
 

Жаль что предыдущий вариант сообщения потерли - он мне больше нравился:)
Вам уже совсем непрозрачно намекнули, что если что-то делать, то вам подскажут как, если ныть "сделайте мне" - будет справедливо если за это попросят денег.

   
 
 автор: cheops   (01.04.2005 в 23:30)   письмо автору
 
   для: MarioKasar   (01.04.2005 в 23:02)
 

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

   
 
 автор: MarioKasar   (02.04.2005 в 20:31)   письмо автору
 
   для: cheops   (01.04.2005 в 23:30)
 

Вот пожалуйста - скачайте каталог с базой ссылок - в базе 300 слишним ссылок - этого я думаю достаточно.
Заранее спасибо.
http://primerkataloga.narod.ru/xlink.rar

   
 
 автор: cheops   (02.04.2005 в 21:34)   письмо автору
 
   для: MarioKasar   (02.04.2005 в 20:31)
 

Замените блок кода в файле index.php c 130 по 140 строку следующим
<?php
    
if(!count($urlx)==0)
    {
       echo 
"<p><b>Страницы: ";
       
// Выводим ссылку "Назад", если это не первая страница
       
if($p != 1) echo "<a href='index.php?cat=$cat&p=".($p 1)."'>Назад</a> ";
       for(
$i=1$i<=$xceil$i++)
       {
         if(
$i==$p)
         {
           
$color=" style='color=#888888'";
         }
         else
         {
           
$color='';
         }
         echo 
"<a href='index.php?cat=$cat&p=$i'$color>$i</a> ";
       }
       
// Выводим ссылку "Вперёд", если это не последняя страница
       
if($p != $xceil) echo "<a href='index.php?cat=$cat&p=".($p 1)."'>Вперёд</a> ";
       echo 
"</b></p>";
    }
?>

Имелось ввиду это?

   
 
 автор: MarioKasar   (02.04.2005 в 21:49)   письмо автору
 
   для: cheops   (02.04.2005 в 21:34)
 

СПАСИБО !!!!!!!! Вот это как раз то что мне нужно! Всё работает великолепно. Я бы так наверное ещё год искал ответ на этот вопрос - ну согласитесь - там не так как в тех примерах, что мне давали здешние юзеры - просто автор этого каталога очень сильно там перемудрил с переменными - по крайней мере мне так кажется - ещё раз СПАСИБО !!! Да здравствует Cheops !!!! :)

   
 
 автор: MarioKasar   (02.04.2005 в 21:58)   письмо автору
 
   для: MarioKasar   (02.04.2005 в 21:49)
 

Небольшая проблемка - я понимаю что уже достал - а как же разбить по 10 страниц? Вот так:
<<Назад 1 2 3 4 5 6 7 8 9 10 Вперёд>>
Вместо:
<<Назад 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 Вперёд>>

   
 
 автор: cheops   (03.04.2005 в 00:36)   письмо автору
 
   для: MarioKasar   (02.04.2005 в 21:58)
 

Тогда замените на этот блок
<?php
    
if(!count($urlx)==0)
    {
       echo 
"<p><b>Страницы: ";
       
// Выводим ссылку "Назад", если это не первая страница
       
if($p != 1) echo "<a href='index.php?cat=$cat&p=".($p 1)."'>Назад</a> ";
       
// Число страниц до и после текущей страницы
       
$npage 2;
       
// Выводим предыдущие элементы
       
if($p $npage 1)
       {
         echo 
"...";
         for(
$i $p $npage$i $p$i++)
         {
           echo 
"<a href='index.php?cat=$cat&p=$i'>$i</a> ";
         }
       }
       else
       {
         for(
$i 1$i $p$i++)
         {
           echo 
"<a href='index.php?cat=$cat&p=$i'>$i</a> ";
         }
       }
       
// Выводим текущий элемент
       
echo "<a href='index.php?cat=$cat&p=$p' style='color=#888888'>$i</a> ";
       
// Выводим следующие элементы
       
if($p $npage $xceil)
       {
         for(
$i $p 1$i <= $p $npage$i++)
         {
           echo 
"<a href='index.php?cat=$cat&p=$i'>$i</a> ";
         }
         echo 
"...";
       }
       else
       {
         for(
$i $p 1$i <= $xceil$i++)
         {
           echo 
"<a href='index.php?cat=$cat&p=$i'>$i</a> ";
         }
       }
       
// Выводим ссылку "Вперёд", если это не последняя страница
       
if($p != $xceil) echo "<a href='index.php?cat=$cat&p=".($p 1)."'>Вперёд</a> ";
       echo 
"</b></p>";
    }
?>

Число страниц "до" и "после" текущей страницы определяется переменной $npage (значение по умолчанию 2).

   
 
 автор: MarioKasar   (03.04.2005 в 20:26)   письмо автору
 
   для: cheops   (03.04.2005 в 00:36)
 

Спасибо - на этот раз всё безупречно! Огромный респект CheopsУ - настоящему мастеру своего дела!

   
 
 автор: Flash5   (02.04.2005 в 13:54)   письмо автору
 
   для: MarioKasar   (01.04.2005 в 23:02)
 

Я не в коем случае не хотел обидеть, я просто попытался объяснить почему на ваш вопрос нету ответа. Что касается несколько "несколько сток написать", хочется вам рассказать одну поучительную историю:
Однажды испортилась рояль, очень дорогая и ни кто не мог подремонтировать, пока не позвали профессионала. Осмотрев рояль он взял молоток и стукнул им о рояль один раз, и инструмент заработал исправно. Его спросили сколько стоит его труд? Он ответил 1000 долларов. Хозяева возмутились как это за один удар 1000 долларов? А мастер ответил, я взял 10 долларов за удар молотком а 990 долларов за то что я знаю куда надо бить :-)
Так что главное не сколько строк надо вставить а что за строки надо вставлять и куда :-)
Желаю удачи

   
Rambler's Top100
вверх

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