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

Форум PHP

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

 

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

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

тема: навигация
 
 автор: Василий   (07.01.2012 в 02:00)   письмо автору
 
 

На странице у которой есть id_pu нужно вывести навигацию по id_pu
Т.е если текущая страница post_pu.php?id_pu=1, то следующая post_pu.php?id_pu=2 и т.д.
id_pu известна
if (isset ($_GET['id_pu'])) {$id_pu = $_GET['id_pu'];}
if (!isset($id_pu)) {$id_pu=1;}


// Переменная хранит число сообщений выводимых на станице 
$num = 1; 
// Извлекаем из URL текущую страницу 
$page = $_GET['page']; 
// Определяем общее число сообщений в базе данных 
$result = mysql_query("SELECT COUNT(*) FROM pu WHERE approved='1'"); 
$posts = mysql_result($result, 0); 
// Находим общее число страниц 
$total = intval(($posts - 1) / $num) + 1; 
// Определяем начало сообщений для текущей страницы 
$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 * from bd LIMIT $start, $num", $db);
// В цикле переносим результаты запроса в массив $postrow 
while ( $postrow[] = mysql_fetch_array($result)) 



// Проверяем нужны ли стрелки назад
'<a href=post_pu.php?id_pu='.($id_pu - 1) .'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($id_pu != $total) $nextpage = '<a href=post_pu.php?id_pu='. ($id_pu + 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>";
}

   
 
 автор: Василий   (07.01.2012 в 17:16)   письмо автору
 
   для: Василий   (07.01.2012 в 02:00)
 

КАк поправить?

   
 
 автор: Василий   (08.01.2012 в 07:48)   письмо автору
 
   для: Василий   (07.01.2012 в 17:16)
 

/ Проверяем нужны ли стрелки назад
'<a href=post_pu.php?id_pu='.($id_pu - 1) .'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($id_pu != $total) $nextpage = '<a href=post_pu.php?id_pu='. ($id_pu + 1) .'>Следующая</a>';

   
 
 автор: Василий   (08.01.2012 в 08:03)   письмо автору
 
   для: Василий   (08.01.2012 в 07:48)
 

в БД 10 статей.
$res = mysql_query("SELECT COUNT(*) FROM bd");
$row = mysql_fetch_row($res);
$total = $row[0]; // всего статей
echo "<strong><p style='MARGIN-LEFT: 15px'>Всего: ($total)</p></strong>";

Когда открыта 1-ая страница post_pu.php?id_pu=1 нужно сделать ссылку на следующую страницу
Когда открыта 2-ая страница post_pu.php?id_pu=2 нужна ссылка перехода на следующую или предыдущую страницы

Пробовал сделать страничную навигацию по вашему скрипту, там завязано на page.

// Переменная хранит число сообщений выводимых на станице 
$num = 1; 
// Извлекаем из URL текущую страницу 
$page = $_GET['page']; 
// Определяем общее число сообщений в базе данных 
$result = mysql_query("SELECT COUNT(*) FROM pu WHERE approved='1'"); 
$posts = mysql_result($result, 0); 
// Находим общее число страниц 
$total = intval(($posts - 1) / $num) + 1; 
// Определяем начало сообщений для текущей страницы 
$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 * from bd LIMIT $start, $num", $db);
// В цикле переносим результаты запроса в массив $postrow 
while ( $postrow[] = mysql_fetch_array($result))


как в этом направлении полагаю надо двигаться
// Проверяем нужны ли стрелки назад
'<a href=post_pu.php?id_pu='.($id_pu - 1) .'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($id_pu != $total) $nextpage = '<a href=post_pu.php?id_pu='. ($id_pu + 1) .'>Следующая</a>';

Что добавить в скрипт?

   
 
 автор: prodigy   (08.01.2012 в 14:46)   письмо автору
 
   для: Василий   (08.01.2012 в 08:03)
 

$page = (int) $_GET['id_pu'];

mysql_fetch_array меняй на mysql_fetch_assoc

вот это уже не нужно: $page = intval($page);

   
 
 автор: Slo_Nik   (08.01.2012 в 15:55)   письмо автору
 
   для: prodigy   (08.01.2012 в 14:46)
 

Да что Вы говорите?!!
при чём тут запрос к базе к формированию переменной $page ?
разве эта переменная приходит из базы?
получается, что приведение к целому числу нужно )))

   
 
 автор: prodigy   (08.01.2012 в 16:04)   письмо автору
 
   для: Slo_Nik   (08.01.2012 в 15:55)
 

я не понял кому адресован предыдущий комментарий
и вообще непонятно в чем проблема

   
 
 автор: Slo_Nik   (08.01.2012 в 16:13)   письмо автору
 
   для: prodigy   (08.01.2012 в 16:04)
 

Вам и был адресован.

   
 
 автор: Василий   (08.01.2012 в 19:09)   письмо автору
 
   для: Slo_Nik   (08.01.2012 в 16:13)
 

Тут помощи можно ожидать только от cheops

   
 
 автор: ladan   (08.01.2012 в 19:14)   письмо автору
 
   для: Василий   (08.01.2012 в 19:09)
 

Перебирать код неохото, скину свой работающий на сайте


<?

$result6 
mysql_query("SELECT * FROM comments WHERE gost='$id' and moderator=1");
        if (
mysql_num_rows($result6) > 0/* если есть в базе записи, удовлетворяющие запросу, формируем постраничную навигацию и выводим комменты в цикле */
        
{
    
            
$num 5;
// Извлекаем из URL текущую страницу
@$page $_GET['page'];
// Определяем общее число сообщений в базе данных. Это нужно для того чтобы посчитать колличество страниц
$result00 mysql_query("SELECT COUNT(*) FROM comments WHERE gost='$id' AND moderator='1'");
$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        
        
$result000 mysql_query("SELECT * FROM comments WHERE gost='$id' AND moderator='1' ORDER BY id DESC LIMIT $start$num");
$myrow000 mysql_fetch_array($result000);



// Проверяем нужны ли стрелки назад
if ($page != 1$pervpage '<a href=view_select.php?id='.$id.'&page=1&click5>Первая</a>  <a href=view_select.php?id='.$id.'&page='. ($page 1) .'&click5>Предыдущая</a>  ';
// Проверяем нужны ли стрелки вперед
if ($page != $total$nextpage '  <a href=view_select.php?id='.$id.'&page='. ($page 1) .'&click5>Следующая</a>  <a href=view_select.php?id='.$id.'&page=' .$total'&click5>Последняя</a>';

// Находим пять ближайших станиц с обоих краев, если они есть
if($page 0$page5left ' <a href=view_select.php?id='.$id.'&page='. ($page 5) .'&click5>'. ($page 5) .'</a>  ';
if(
$page 0$page4left ' <a href=view_select.php?id='.$id.'&page='. ($page 4) .'&click5>'. ($page 4) .'</a>  ';
if(
$page 0$page3left ' <a href=view_select.php?id='.$id.'&page='. ($page 3) .'&click5>'. ($page 3) .'</a>  ';
if(
$page 0$page2left ' <a href=view_select.php?id='.$id.'&page='. ($page 2) .'&click5>'. ($page 2) .'</a>  ';
if(
$page 0$page1left ' <a href=view_select.php?id='.$id.'&page='. ($page 1) .'&click5>'. ($page 1) .'</a>  ';

if(
$page <= $total$page5right '  <a href=view_select.php?id='.$id.'&page='. ($page 5) .'&click5>'. ($page 5) .'</a>';
if(
$page <= $total$page4right '  <a href=view_select.php?id='.$id.'&page='. ($page 4) .'&click5>'. ($page 4) .'</a>';
if(
$page <= $total$page3right '  <a href=view_select.php?id='.$id.'&page='. ($page 3) .'&click5>'. ($page 3) .'</a>';
if(
$page <= $total$page2right '  <a href=view_select.php?id='.$id.'&page='. ($page 2) .'&click5>'. ($page 2) .'</a>';
if(
$page <= $total$page1right '  <a href=view_select.php?id='.$id.'&page='. ($page 1) .'&click5>'. ($page 1) .'</a>';


if (
$total 1)
{
echo 
"<div class='pstrnav2'>";
echo 
$pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<span class=page>'.$page.'</span>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo 
"</div>";
}
            
    
        
        do
        {
        
printf("<table class='view_coment'>
  <tr>
    <td class='author_date'><span style='float:left;'>Отзыв добавил(а): <b>%s</b></span><span style='float:right;'>Дата добавления: <b>%s</b></span></td>
      <tr>
      <tr>
    <td valign='top'>%s</td>
  </tr>
</table>"
$myrow000['author'] , $myrow000['date'] , $myrow000['text']);
        }
        while (
$myrow000 mysql_fetch_array($result000));
        }
        else {echo 
"<p>отзывов пока нет</p>";}

        
?>


?>

   
 
 автор: Василий   (08.01.2012 в 19:20)   письмо автору
 
   для: ladan   (08.01.2012 в 19:14)
 

да у меня совершенна иная задача, не жуно считать кол-во выводимых сообщений

   
 
 автор: Slo_Nik   (08.01.2012 в 19:21)   письмо автору
 
   для: ladan   (08.01.2012 в 19:14)
 

Ссылку на постраничную навигацию уже давали Василию, там тоже рабочий код
Но......видать не судьба автору темы разобраться в код.
Василий,я уже писал в этой теме, что id тут ни при чём. Вернее для перехода по страницам Вам нужна $page, но Вы упорно пытаетесь использовать id.
А если у Вас id не по порядку? Вы же сами интересовались таким вопросом. Зачем же Вы лепите id?
Вот и опять Вам дали готовый код, Вам надо только сформировать ссылки на следующую и предыдущую статью.
Всё!
Удалите из кода лишние ссылки и всё

   
 
 автор: Василий   (08.01.2012 в 19:49)   письмо автору
 
   для: Slo_Nik   (08.01.2012 в 19:21)
 

таким образом вообще не выходят ссылки
$num = 1; - ставлю 1

$num = 1;
// Извлекаем из URL текущую страницу
@$page = $_GET['page'];
// Определяем общее число сообщений в базе данных. Это нужно для того чтобы посчитать колличество страниц
$result00 = mysql_query("SELECT COUNT(*) FROM pu WHERE approved='1'");
$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        
        
$result000 = mysql_query("SELECT * FROM pu WHERE approved='1' LIMIT $start, $num");
$myrow000 = mysql_fetch_array($result000); 


// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=post_pu.php?id_pu='.$id_pu.'&page=1&click5>Первая</a>
 <a href=post_pu.php?id_pu='.$id_pu.'&page='. ($page - 1) .'&click5>Предыдущая</a>  ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = '  <a href=post_pu.php?id_pu='.$id_pu.'&page='. ($page + 1) 
.'&click5>Следующая</a>  <a href=post_pu.php?id_pu='.$id_pu.'&page=' .$total. 
'&click5>Последняя</a>'; 

   
 
 автор: Slo_Nik   (08.01.2012 в 19:53)   письмо автору
 
   для: Василий   (08.01.2012 в 19:49)
 

откуда это WHERE approved='1' ?
возможно это мешает

   
 
 автор: Василий   (08.01.2012 в 19:54)   письмо автору
 
   для: Slo_Nik   (08.01.2012 в 19:53)
 

тут все верно. выводить из БД где approved='1'

   
 
 автор: Василий   (08.01.2012 в 19:54)   письмо автору
 
   для: Slo_Nik   (08.01.2012 в 19:53)
 

тут все верно. выводить из БД где approved='1'

   
 
 автор: Slo_Nik   (08.01.2012 в 19:55)   письмо автору
 
   для: Василий   (08.01.2012 в 19:54)
 

а Вы всё таки проверьте

   
 
 автор: ladan   (08.01.2012 в 19:59)   письмо автору
 
   для: Василий   (08.01.2012 в 19:54)
 

а этот код есть?

<?
if ($total 1

echo 
"<div class='pstrnav2'>"
echo 
$pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<span class=page>'.$page.'</span>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage
echo 
"</div>"
}

?>

   
 
 автор: deimand   (10.01.2012 в 05:00)   письмо автору
 
   для: Василий   (08.01.2012 в 19:09)
 

>Тут помощи можно ожидать только от cheops

Да нет, просто Cheops не может отказать, это его сайт.

Тут дело в том, что вы (многие из вас) не хотите учить матчасть. Вам просто лень прочитать учебник два раза, скачать толмут скриптов на все случаи жизни, (хотя конечно не на все, но для начала хватит), описание к которым здесь, и воспользоваться поиском похожих вопросов. Вот когда у Вас будут вопросы посложнее, с удовольствием помогут многие, но на одно и то же отвечать в течение нескольких лет надоело. Этот форум богат информацией, и если вам лень ее получать, нам это точно не нужно.

А Cheops`a вы пожалейте, знаете какие нервы нужны чтобы вам всем помогать там, где на самом деле все элементарно, а вы не хотите сами чуть глубже копнуть? Я конечно тоже был новичком задающим кучу вопросов, но учебник я читал три раза, и скриптов качал столько, что у меня вирусы компьютер просто ели. Но я не сдавался, переустанавливал windows, и качал снова и учил дальше. В конце концов кому это надо? Вы хотите быть программистом, или я (обобщаю (Cheops), кто угодно ) заставляю вас все это учить?

   
 
 автор: prodigy   (08.01.2012 в 21:04)   письмо автору
 
   для: Slo_Nik   (08.01.2012 в 16:13)
 

а я в чем провинился-то?
вы думаете я не умею делать постраничную навигацию? ошибаетесь

   
 
 автор: Slo_Nik   (08.01.2012 в 21:17)   письмо автору
 
   для: prodigy   (08.01.2012 в 21:04)
 

я не говорю, что Вы в чём то провинились ))) ни к коем случае...
но вот связи между mysql_fetch_assoc и переменной $page не вижу.
Возможно я и заблуждаюсь...

   
 
 автор: Василий   (08.01.2012 в 23:01)   письмо автору
 
   для: Slo_Nik   (08.01.2012 в 21:17)
 

вот не совсем понятно
a href=post_pu.php?id_pu='.$id_pu.'&page=1&click5

по идее если
post_pu.php?id_pu=1

то следующая страница должна быть post_pu.php?id_pu=2, потом post_pu.php?id_pu=3

а таким образом post_pu.php?id_pu='.$id_pu.'&page=1&click выйдет совсем не то что нужно

   
 
 автор: Slo_Nik   (08.01.2012 в 23:34)   письмо автору
 
   для: Василий   (08.01.2012 в 23:01)
 

Это Вы взяли из кода который Вам дал ladan, вот к нему и вопрос.
Я же Вам давал пример вот с этой статьи
Там кроме переменной $page нет ни каких данных в ссылках на страницы.
Для начала запустите этот код, разберитесь как он работает, а уж потом вносите свои изменения.
эти данные id_pu Вы берёте из массива get, как я понимаю это id статьи или новости, не знаю, что там у Вас, да мне и не интересно...
В прошлом своём посте Вы спрашивали как обойти то обстоятельство, если id идут не по порядку?
Я Вам ответил, что ни как, опирайтесь на переменную $page, но Вы опять не слушаете, а продолжаете гнуть свою линию.
Поэтому Вы и не можете запустить код.
Если у Вас есть статья с id 1,2 и 5, то как Вы выведите на странице статью с id 3 (id_pu+1) если у Вас такого и в помине нет в Базе Данных?!!!
Так вот, используйте переменную $page, запустите код, чтобы у Вас на странице выводило одну статью и ссылки на соседние.
А что бы сделать ссылки в виде "следующая" и "предыдущая" Вам надо сформировать всего две ссылки, но это надо немного подумать, что Вам не свойственно, к сожалению....

   
 
 автор: ladan   (09.01.2012 в 00:13)   письмо автору
 
   для: Василий   (08.01.2012 в 23:01)
 

по идеи у вас должно быть так

кусок из кода

<?

if($page 0$page5left ' <a href=post_pu.php?id_pu='.$id_pu.'&page='. ($page 5) .'>'. ($page 5) .'</a>  ';

?>

все работает, просто смотреть надо, click5 удалите везде, работу этого когда можно посмотреть здесь, http://anapaoteli.ru/view_select.php?id=1&page=1&click5

Там такой же код, что вам давал

   
 
 автор: Василий   (09.01.2012 в 03:02)   письмо автору
 
   для: ladan   (09.01.2012 в 00:13)
 

стрелки появились. теперь немного. убрать лишнее и сделать 2 ссылки на предыдущую и следующие страницы.
// Проверяем нужны ли стрелки назад 
if ($page != 1) $pervpage = '<a href=post_pu.php?id_pu=1><<</a> 
                               <a href=post_pu.php?id_pu='. ($page - 1) .'><</a> '; 
// Проверяем нужны ли стрелки вперед 
if ($page != $total) $nextpage = ' <a href=post_pu.php?id_pu='. ($page + 1) .'>></a> 
                                   <a href=post_pu.php?id_pu=' .$total. '>>></a>'; 

// Находим две ближайшие станицы с обоих краев, если они есть 
if($page - 2 > 0) $page2left = ' <a href=post_pu.php?id_pu='. ($page - 2) .'>'. ($page - 2) .'</a> | '; 
if($page - 1 > 0) $page1left = '<a href=post_pu.php?id_pu='. ($page - 1) .'>'. ($page - 1) .'</a> | '; 
if($page + 2 <= $total) $page2right = ' | <a href=post_pu.php?id_pu='. ($page + 2) .'>'. ($page + 2) .'</a>'; 
if($page + 1 <= $total) $page1right = ' | <a href=post_pu.php?id_pu='. ($page + 1) .'>'. ($page + 1) .'</a>';

   
 
 автор: Slo_Nik   (09.01.2012 в 04:48)   письмо автору
 
   для: Василий   (09.01.2012 в 03:02)
 

А самому лишнее убрать?
Код комментирован, неужели такие сложные по смыслу комментарий?

   
 
 автор: Василий   (09.01.2012 в 05:11)   письмо автору
 
   для: Slo_Nik   (09.01.2012 в 04:48)
 

если бы знал давно бы убрал
вот cheops почему-то не пишет подобные комментарии

   
 
 автор: Slo_Nik   (09.01.2012 в 05:18)   письмо автору
 
   для: Василий   (09.01.2012 в 05:11)
 

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

   
 
 автор: ladan   (09.01.2012 в 10:59)   письмо автору
 
   для: Slo_Nik   (09.01.2012 в 05:18)
 

согласен!

   
 
 автор: ladan   (09.01.2012 в 10:58)   письмо автору
 
   для: Василий   (09.01.2012 в 03:02)
 


<?

// Проверяем нужны ли стрелки назад  
if ($page != 1$pervpage '  <a href=post_pu.php?id_pu='. ($page 1) .'><</a> ';  
// Проверяем нужны ли стрелки вперед  
if ($page != $total$nextpage ' <a href=post_pu.php?id_pu='. ($page 1) .'>></a> ';  

// Находим две ближайшие станицы с обоих краев, если они есть  
if($page 0$page2left ' <a href=post_pu.php?id_pu='. ($page 2) .'>'. ($page 2) .'</a> | ';  
if(
$page 0$page1left '<a href=post_pu.php?id_pu='. ($page 1) .'>'. ($page 1) .'</a> | ';  
if(
$page <= $total$page2right ' | <a href=post_pu.php?id_pu='. ($page 2) .'>'. ($page 2) .'</a>';  
if(
$page <= $total$page1right ' | <a href=post_pu.php?id_pu='. ($page 1) .'>'. ($page 1) .'</a>';


?>

   
 
 автор: Василий   (09.01.2012 в 14:11)   письмо автору
 
   для: ladan   (09.01.2012 в 10:58)
 

еще как пробовал.
ваш вариант тоже не работает.
не происходит переключение. нажимаешь на "2" - остается страница "1"
мне страницы не нужны - только "следующая" и "предыдущая"

   
 
 автор: Slo_Nik   (09.01.2012 в 14:54)   письмо автору
 
   для: Василий   (09.01.2012 в 14:11)
 

Значит плохо пробовали.
Код рабочий, у Вас скорей всего проблема в параметрах ссылки на другие страницы
по поводу "предыдущая/следующая"
сделайте две ссылки всего, это первое.
второе, если у Вас показывает ссылку на следующую страницу в виде "2"(вторая страница),
то как надо подправить предыдущий код, что бы вместо "2" была надпись "следующая"?
Это даже не php, а обыкновенный html.

   
 
 автор: Василий   (09.01.2012 в 16:29)   письмо автору
 
   для: Slo_Nik   (09.01.2012 в 14:54)
 

сделал вот так
// Проверяем нужны ли стрелки назад  
if ($page != 1) $pervpage = '  <a href=post_pu.php?id_pu='. ($page - 1) .'>предыдущая</a> ';  
// Проверяем нужны ли стрелки вперед  
if ($page != $total) $nextpage = ' <a href=post_pu.php?id_pu='. ($page + 1) .'>следующая</a> ';  



// Вывод меню 
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;


и все равно выходит цифра "1"
там где post_pu.php?id_pu=2 нажимаю на следующая и не появляется post_pu.php?id_pu=3, грузится post_pu.php?id_pu=2

   
 
 автор: Slo_Nik   (09.01.2012 в 17:26)   письмо автору
 
   для: Василий   (09.01.2012 в 16:29)
 

ладно, с html разобрались немного....
а вывод меню кто менять будет, Пушкин?
Выводит "1" потому, что Вы сами указываете, где её выводить.Почему не убрали лишние переменные?
Повторяю, Вам надо только две переменные

<?php  
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
?>

теперь внимательно посмотрите, сравните то, что Вам дали и то, что Вы навертели.
Смотрите внимательно, как формируются данные по page

<?php 
// то что дали Вам
if($page 0$page5left ' <a href=view_select.php?id='.$id.'&page='. ($page 5) .'>'. ($page 5) .'</a>  '
// то, что пытаетесь делать Вы
if ($page != $total$nextpage ' <a href=post_pu.php?id_pu='. ($page 1) .'>следующая</a> '

естественно, так как делаете Вы - ни чего работать не будет

   
 
 автор: Василий   (09.01.2012 в 17:35)   письмо автору
 
   для: Slo_Nik   (09.01.2012 в 17:26)
 

если вот так

if($page - 5 > 0) $page5left = ' <a href=view_select.php?id='.$id.'&page='. ($page - 5) .'>'. ($page - 5) .'</a>  '; 

// Вывод меню 
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;


то ссылок вообще нет

   
 
 автор: Slo_Nik   (09.01.2012 в 17:47)   письмо автору
 
   для: Василий   (09.01.2012 в 17:35)
 

Да-а-а-а, тяжёлый случай....
Я Вас попросил сравнить, а не тулить кусок чужого кода....
Я Вас попросил сократить, удалить не нужное из вывода меню....
Ладно, последняя попытка, решающая для Вас...
сравнивайте это page='. ($page + 1) вот с этим id_pu='. ($page + 1) .'
Разницу видите?
Если да, то правьте свой код чтобы он работал...

   
 
 автор: Василий   (09.01.2012 в 18:16)   письмо автору
 
   для: Slo_Nik   (09.01.2012 в 17:47)
 

сравните что я вам писал ранее
if ($page != 1) $pervpage = '  <a href=post_pu.php?id_pu='. ($page - 1) .'>предыдущая</a> ';  
// Проверяем нужны ли стрелки вперед  
if ($page != $total) $nextpage = ' <a href=post_pu.php?id_pu='. ($page + 1) .'>следующая</a> '; 

то же самое.
и не работает.
Вы можете конкретно написать, что исправить?
Видно пока уважаемый cheops не ответит не видать мне помощи

   
 
 автор: Slo_Nik   (09.01.2012 в 19:15)   письмо автору
 
   для: Василий   (09.01.2012 в 18:16)
 

не видать Вам помощи, пока Вы не разуете свои глаза и не начнёте думать!!!
как Вам ещё показать?
Разницу видите
Первое, то что дали Вам, второе, то что делаете Вы.
сравнивайте это page='. ($page + 1) вот с этим id_pu='. ($page + 1) .'
не будет работать до тех пор, пока Вы не увидите разницы в формировании переменной $page и не исправите у себя

   
 
 автор: Василий   (09.01.2012 в 19:18)   письмо автору
 
   для: Slo_Nik   (09.01.2012 в 19:15)
 

ну как сравнить-то?

   
 
 автор: Slo_Nik   (09.01.2012 в 19:48)   письмо автору
 
   для: Василий   (09.01.2012 в 19:18)
 

ну если Вы не понимаете смысл слова "сравнить", то о чём можно с Вами говорить?
Вроде и русский Вы и по русски Вам пишу, но .... как Вам ещё объяснить, что надо сравнить одно с другим....
Вот, может так поймёте...
Как Вы сравниваете яблоко и грушу глядя на эти два фрукта?
вот и эти две строчки так же сравните, найдите отличие, всего одно....
потом внесите изменения в ВАШ код, не в чужой(!!!), запускайте и ищите причины почему не работает Ваш код дальше....

   
 
 автор: Василий   (09.01.2012 в 19:58)   письмо автору
 
   для: Slo_Nik   (09.01.2012 в 19:48)
 

да не понимаю, честное слово

есои if ($page != 1) $pervpage то выводим <a href=post_pu.php?id_pu='. ($page - 1) .'>предыдущая</a> ';
if ($page != 1) $pervpage = '  <a href=post_pu.php?id_pu='. ($page - 1) .'>предыдущая</a> ';  

   
 
 автор: ladan   (09.01.2012 в 20:11)   письмо автору
 
   для: Василий   (09.01.2012 в 19:58)
 

Короче не понял что нужно автору, но кажется вот это http://anapaoteli.ru/view_select.php?id=1&page=1&click5

стрелки вперед назад, оно?

   
 
 автор: Василий   (09.01.2012 в 20:21)   письмо автору
 
   для: ladan   (09.01.2012 в 20:11)
 

автору нужно следующее
это видно и mail.ru откройте письмо и увидите ссылка "следующее письмо"

мне нужно 2 ссылки всего на следующую страницу и предыдущую

   
 
 автор: Василий   (09.01.2012 в 20:40)   письмо автору
 
   для: Василий   (09.01.2012 в 20:21)
 

ну что в нем не правильного?

предыдущая есть, следующая есть


// Проверяем нужны ли стрелки назад  
if ($page != 1) $pervpage = '  <a href=post_pu.php?id_pu='. ($page - 1) .'>предыдущая</a> ';  
// Проверяем нужны ли стрелки вперед  
if ($page != $total) $nextpage = ' <a href=post_pu.php?id_pu='. ($page + 1) .'>следующая</a> ';  

// Вывод меню 
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage; 

   
 
 автор: ladan   (09.01.2012 в 20:45)   письмо автору
 
   для: Василий   (09.01.2012 в 20:40)
 


<?

как же скрипт тогда поймет какое сообщение
допустим на 5  странице ему показыватьесли вы передаете id_puа не page?

в скрипте явно написано
[code]
<?

$start $page $num $num/* Вот сюда посмотрите */    
         
$result mysql_query("SELECT * FROM  mail  LIMIT $start$num"); 

?>

   
 
 автор: Slo_Nik   (09.01.2012 в 20:48)   письмо автору
 
   для: ladan   (09.01.2012 в 20:45)
 

я ему это говорю уже давно, но пипл упорно не хочет понять, а ждёт готовое решение!!!
предлагал ему сравнить page='. ($page + 1) вот с этим id_pu='. ($page + 1) .', но ему так и не дошло, что надо поменять в этом участке, а всё остальное должно работать....

   
 
 автор: Slo_Nik   (09.01.2012 в 20:46)   письмо автору
 
   для: Василий   (09.01.2012 в 20:40)
 

У Вас не работает потому, что Вы не верно получаете значение page, потому у Вас и не работает....
Блин, вот из принципа сейчас сделаю, выгружу на свой сайт и дам посмотреть....
У Вас ошибка здесь id_pu='. ($page + 1)
А здесь зачем Вам куча переменных, которые Вы не собираетесь использовать?!!

<?php // Вывод меню  
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
// надо всего две переменные !!!
echo $nextpage/* и  */  $pervpage

   
 
 автор: ladan   (09.01.2012 в 20:50)   письмо автору
 
   для: Slo_Nik   (09.01.2012 в 20:46)
 

я давно уже на свой 20 мин назад сделал для Василия :)) http://anapaoteli.ru/view_select.php?id=1&page=1&click5

   
 
 автор: Василий   (09.01.2012 в 20:57)   письмо автору
 
   для: ladan   (09.01.2012 в 20:50)
 

так сравниваю ведь.
И почему выходит цифра 1? Нажимаю на "следующая" грузится та же самая страница
if ($page != 1) $pervpage = '  <a href=post_pu.php?id_pu='. ($page - 1) .'>предыдущая</a> ';  
// Проверяем нужны ли стрелки вперед  
if ($page != ($page + 1)) $nextpage = ' <a href=post_pu.php?id_pu='. ($page + 1) .'>следующая</a> ';  

// Вывод меню 
echo $pervpage.'<b>'.$page.'</b>'.$nextpage; 

   
 
 автор: Slo_Nik   (09.01.2012 в 21:03)   письмо автору
 
   для: Василий   (09.01.2012 в 20:57)
 

ТАК ЧТО НАДО ИЗМЕНИТЬ В ЭТОЙ СТРОКЕ id_pu='. ($page + 1) ЧЕМ ОНА ОТЛИЧАЕТСЯ ОТ page='. ($page + 1)?!!!

УБЕРИТЕ $PAGE ИЗ ЭТОЙ СТРОКИ // Вывод меню
echo $pervpage.'<b>'.$page.'</b>'.$nextpage;
И НЕ БУДЕТ ВЫВОДИТСЯ "1" !!!

[поправлено модератором]

   
 
 автор: Василий   (09.01.2012 в 21:30)   письмо автору
 
   для: Slo_Nik   (09.01.2012 в 21:03)
 

так сразу так бы и написали.
и чего кричать-то? )))

нажимаю следующая
и страница имеет вид post_pu.php?page=2
а мне надо
post_pu.php?id_pu=3, потом post_pu.php?id_pu=4 и т.д.
а если нажать на предыдущая то post_pu.php?id_pu=4, потом post_pu.php?id_pu=3


// Проверяем нужны ли стрелки назад  
if ($page != 1) $pervpage = '  <a href=post_pu.php?page='. ($page - 1) .'>предыдущая</a> ';  
// Проверяем нужны ли стрелки вперед  
if ($page != ($page + 1)) $nextpage = ' <a href=post_pu.php?page='. ($page + 1) .'>следующая</a> ';  

// Вывод меню 
echo $pervpage.$nextpage; 

   
 
 автор: ladan   (09.01.2012 в 21:35)   письмо автору
 
   для: Василий   (09.01.2012 в 21:30)
 

тогда вам потребуется весь скрипт изменить, за место page прописать везде id_pu и будет вам счастье :)

   
 
 автор: Василий   (09.01.2012 в 21:45)   письмо автору
 
   для: ladan   (09.01.2012 в 21:35)
 

разумно
но писали тут

ТАК ЧТО НАДО ИЗМЕНИТЬ В ЭТОЙ СТРОКЕ id_pu='. ($page + 1) ЧЕМ ОНА ОТЛИЧАЕТСЯ ОТ page='. ($page + 1)?!!!


пробовал. но не работате

   
 
 автор: Slo_Nik   (09.01.2012 в 21:50)   письмо автору
 
   для: Василий   (09.01.2012 в 21:45)
 

Да какая разница, Вы всё равно не поймёте....
50 с лишним сообщений на избитую, затёртую до дыр тему....
с ума сойти можно....
при том, что Вам дали две(!) ссылки на готовое решение + две ссылки(!) на обсуждение данной темы.

   
 
 автор: Василий   (09.01.2012 в 21:59)   письмо автору
 
   для: Slo_Nik   (09.01.2012 в 21:50)
 

да елы палы

if ($page != 1) $pervpage = '  <a href=post_pu.php?page='. ($page - 1) .'>предыдущая</a> ';  

вы предложили поменять id_pu на page
поменял. а надо сохранить id_pu, но не работает.
Не будет счастья тут, пока cheops не поможет )))

   
 
 автор: Slo_Nik   (09.01.2012 в 22:02)   письмо автору
 
   для: Василий   (09.01.2012 в 21:59)
 

>Не будет счастья тут, пока cheops не поможет )))
Не будет пока самостоятельно думать не начнёте, Cheops тут ни при чём....
Вам писали в предыдущих Ваших темах - поэтапный контроль выполнения скрипта...
Но это всё не для Вас....

Запустите для начала без переделок скрипты, ссыки на которые Вам давал. Вот когда запустите, тогда и будете менять переменные, вывод ссылок на страницы.... и так далее...

   
 
 автор: Василий   (09.01.2012 в 22:06)   письмо автору
 
   для: Slo_Nik   (09.01.2012 в 22:02)
 

Slo_Nik, если у Вас миссия такая растолковывать никчемность других, то и помогайте заодно.
Может Вы и сами ничего не знаете?
Вот cheops знает и помогает.

   
 
 автор: ladan   (09.01.2012 в 22:19)   письмо автору
 
   для: Василий   (09.01.2012 в 22:06)
 

Василий, у вас скрипт не будет работать если будете использовать id_pu вместо page. Зачем вам id_pu, для чего это? Page как минимум должен быть
Если вам нужно сохранить id_pu, то ссылку в скрипте нужно составить таким образом, чтоб она передавала две переменных id_pu и page

На моем сайте я испльзую аж 3 переменных

http://anapaoteli.ru/view_select.php?id=1&page=2&click5

из них - id(пусть это будет ваш id_pu)
потом идет page - для скрипта
и третья переменная click5

   
 
 автор: ladan   (09.01.2012 в 22:23)   письмо автору
 
   для: Василий   (09.01.2012 в 22:06)
 

cheops поможет с учетом того, что вы имеете представление как можно сделать.

О какой помощи cheops можно говорить, если вы его же закомментированный скрипт не понимаете?

   
 
 автор: Василий   (10.01.2012 в 02:46)   письмо автору
 
   для: ladan   (09.01.2012 в 22:23)
 

ну нафига мне page?
если я буду использовать page то ссылка на страницу будет такой:
post_pu.php?page=2

а мне надо чтобы была такой
post_pu.php?id_pu=2

потому что в БД статьи у меня лежат под номерами id_pu, они у всех разные.
Да и мы с вами разные, вы понимаете, я нет.
Меня можно к книгам отослать, я уже читаю одну, но пока я дойду сам сколько времени пройдет.
Люди добрые, спуститесь на уровень чайника и попробуйте еще раз показать, что нужно исправить.

И мне не нужно чтобы этот скрипт выводил страницу.
У меня другой скрипт выводит. Мне нужна лишь ссылка на другие страницы

   
 
 автор: Slo_Nik   (10.01.2012 в 03:01)   письмо автору
 
   для: Василий   (10.01.2012 в 02:46)
 

>ну нафига мне page?
для того что бы у Вас работала навигация... посмотрите в адресную строку браузера и увидите, что не только id форума, id темы передаётся, но и номер страницы.
id не всегда будут идти в базе по порядку - "1,2,3,4,5,6...." могут идти и так: "1,24,37,59,2001" и если исходить из ващего id_pu=($page+1), то ни чего толком не получится... поэтому нужна переменная, которая будет увеличиваться/уменьшаться по порядку.
Вам дали два рабочих код, прекращайте лепить бред, а запустите любой из этих примеров с Вашей базой и Вашими данными. разберитесь, посмотрите и поймите как это работает, а уж потом изменяйте код как Вам вздумается.... А изменить Вам в конечном счёте нужно всего лишь ссылки на страницы, заменить своими "следующая" и "предыдущая".
И вот это id_pu=($page+1) у Вас работать не будет потому, что в коде переменная page берёт данные из массива get, а данные в этот массив попадают те, что в адресе стоят после знака "?"
поэтому Вам надо или изменить название переменной page на id_pu или в ссылках id_pu заменить на page.
Всё!
Если Вы и так не поймёте, то обрадовать Вас больше не чем....

   
 
 автор: Василий   (10.01.2012 в 03:06)   письмо автору
 
   для: Slo_Nik   (10.01.2012 в 03:01)
 

уже лучше. чуть понятно.
смотрите
// Проверяем нужны ли стрелки назад  
if ($page != 1) $pervpage = '  <a href=post_pu.php?page='. ($page - 1) .'>предыдущая</a> ';  
// Проверяем нужны ли стрелки вперед  
if ($page != ($page + 1)) $nextpage = ' <a href=post_pu.php?page='. ($page + 1) .'>следующая</a> ';  

// Вывод меню 
echo $pervpage.$nextpage; 

ну почему кликаю на "следующая" грузится опять таже самая страница?

   
 
 автор: Slo_Nik   (10.01.2012 в 03:20)   письмо автору
 
   для: Василий   (10.01.2012 в 03:06)
 

Вам поможет поэтапная проверка данных/переменных и т.п.
Смотрите куда и что идёт... что попадает в переменную $page... что в запрос к базе попадает и что этот запрос возвращает.... всё смотрите и проверяйте.
error_reporting()....
Да что ещё говорить.... Вам это уже вдалбливается в голову на протяжении последних дней.... разными людьми....
тема избитая и заезженная, коды рабочие....
Вы в этом if ($page != ($page + 1)) уверены?

   
 
 автор: Василий   (10.01.2012 в 03:59)   письмо автору
 
   для: Slo_Nik   (10.01.2012 в 03:20)
 

Вы в этом if ($page != ($page + 1)) уверены?

я в этом не уверен.
Значит вот так
if ($page != ($id_pu+ 1))

но что делать, если не соображаю, а ошибку все равно хочется исправить?

   
 
 автор: Slo_Nik   (10.01.2012 в 13:49)   письмо автору
 
   для: Василий   (10.01.2012 в 03:59)
 

Блин, у Вас два рабочих кода и две темы + Ваша обсуждений!!!
сравнивайте то, что есть в примерах с тем, что есть у Вас в коде.
Поиграйте сами с собой в игру "Найди *** отличий"

   
 
 автор: Василий   (10.01.2012 в 15:27)   письмо автору
 
   для: Slo_Nik   (10.01.2012 в 13:49)
 

eleHaki, за ваше "Ну какой, вы тупой Ипполит" - огромное спасибо.
Мира и счастья. Я за вас помолюсь. Пусть у вас все будет хо-ро-шо.

Cheops, без вас тут никак с кодом не разберусь )))

   
 
 автор: Slo_Nik   (10.01.2012 в 15:40)   письмо автору
 
   для: Василий   (10.01.2012 в 15:27)
 

прикрепите ка файл с кодом к своему сообщению, покажите полностью, что Вы сделали.
и ещё, сделайте так, как я напишу.
1)Установите код с любого примера
2)Запустите его и добейтесь, что бы он работал, выводил ссылки на страницы
3)Начните по очереди вносить изменения в код начиная с кол-ва контента на странице и заканчивая ссылками на "следующую" и "предыдущую"
Более Вам вряд ли кто то здесь поможет, потому, что Вы напрочь отказываетесь думать головой...

   
 
 автор: cheops   (10.01.2012 в 15:44)   письмо автору
 
   для: Василий   (10.01.2012 в 15:27)
 

Я в такие длинные темы не заглядываю :))) Долго читать... если в теме больше 20 постов, для меня это неправильная тема :))) Нужно разбить проблему на еще более мелкие вопросы, чтобы темы были короче и к ним могло подключиться больше народу (ну вот хотя бы я :).

   
 
 автор: Василий   (10.01.2012 в 15:47)   письмо автору
 
   для: cheops   (10.01.2012 в 15:44)
 

Появился луч в темном царстве )))

   
 
 автор: Slo_Nik   (10.01.2012 в 15:47)   письмо автору
 
   для: cheops   (10.01.2012 в 15:44)
 

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

   
 
 автор: Василий   (10.01.2012 в 15:51)   письмо автору
 
   для: Slo_Nik   (10.01.2012 в 15:47)
 

Slo_Nik, я тут другую тему создан. Ужж очень прошу не пишите туда. Я тут за все время вразумительную помощь получаю только от cheops. Вы только тему растягиваете.

   
 
 автор: Slo_Nik   (10.01.2012 в 15:56)   письмо автору
 
   для: Василий   (10.01.2012 в 15:51)
 

растягиваете Вы и только Вы своим нежеланием думать.
Я попросил код, где он?
и после этого, кто растягивает тему?

   
Rambler's Top100
вверх

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