[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Многостраничность постов
KirA3342
Приветствую всех форумчан.
Вопрос такой:
У меня на страницу реализован вывод постов
PHP
do{

printf("
       <table border='1' style='padding:10px;' align='center' border='0' cellspacing='0' cellpadding='0'>
            <tr>
              <td>%s</td>
            </tr>
            <tr>
              <td>%s</td>
            </tr>
          </table>"
$myrow5['title'], $myrow5['description']);
          

          
}while(
$myrow5 mysql_fetch_array($result5));


У меня к примеру 40 постов....как мне сделать меню страниц? Нужно посты разбились к примеру по 10 постов на страницу..



Спустя 33 минуты, 13 секунд (11.07.2009 - 21:22) PandoraBox2007 написал(а):
зачем юзаш пост-условия начального действия не будет 1 пост будет чист или надо дополнительно делать запрос mysql_fetch_array

Спустя 5 минут, 8 секунд (11.07.2009 - 21:27) KirA3342 написал(а):
Не могли бы Вы кинуть пример данной реализации из какого-нибудь исходника.

Спустя 31 минута, 52 секунды (11.07.2009 - 21:59) Soldier Ghost написал(а):
Выложи весь код страницы

Спустя 10 минут, 24 секунды (11.07.2009 - 22:10) KirA3342 написал(а):
Вообще мне бы именно момент разбивки на страницы хотелось увидеть....
PHP
<?php include("blocks/bd.php");
$result5 mysql_query("SELECT * FROM data");
Error_Reporting(E_ALL & ~E_NOTICE);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Main page</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="690" border="0" align="center" cellpadding="0" cellspacing="0" class="main_border">
  <?php include("blocks/head.php"); ?>
  <tr>
    <td valign="top">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <?php include("blocks/left.php"); ?>
        <td valign="top">
        
     
<?php  
for($i=0$i<count($myrow5); $i++){ 
 
do{
printf("
       <table border='1' style='padding:10px;' align='center' border='0' cellspacing='0' cellpadding='0'>
            <tr>
              <td>%s</td>
            </tr>
            <tr>
              <td>%s</td>
            </tr>
          </table>"
$myrow5['title'], $myrow5['description']);
          

          
}while(
$myrow5 mysql_fetch_array($result5));    

}   
  
?>        
          </td>
      </tr>
    </table>
    </td>
  </tr>
<?php include("blocks/footer.php"); ?>
</tab

Спустя 4 минуты, 5 секунд (11.07.2009 - 22:14) ИНСИ написал(а):
Этот вопрос уже подымался вот тут Тема постраничная навигация

Спустя 1 минута, 30 секунд (11.07.2009 - 22:15) ИНСИ написал(а):
Но если что, то вот последний рабочий код, а как разрабатывался можешь там же почитать =))))
PHP
$leftButtons 5;
                    
$rightButtons 5;
                    
$webRoot '/'// в конфиге прописывать надо
$cat 2;

                    
$num 1;
                    
$result_page mysql_query("SELECT COUNT(*) FROM post WHERE cat='$cat'");
                    
$temp_page mysql_fetch_array($result_page);
                    
$posts_page $temp_page[0];
                    
                    
$total intval(($posts_page 1) / $num) + 1;
                    
$page = isset($_GET['page']) && $_GET['page'] >= intval($_GET['page']) : 0;
                    if(
$page $total$page $total;
                    
$start $page $num;
                    
                    
$leftmost = ($page <= $leftButtons) ? $page $leftButtons;
                    
$rightmost = ($total $page <= $rightButtons) ? $total 1$page $rightButtons;
                    
                    function 
PageLinkHtml($page,$cat 2)
                    {
                        return 
'<a href=' $webRoot  .'family.php?cat='.$cat.'&page='$page .'>'. ($page 1)  .'</a>';
                    }
//выводим сам текст и т.д.......

if ($page 0
            echo 
PageLinkHtml($page 1);
            
            for (
$i $leftmost$i <= $rightmost$i++)
            {
            if (
$i == $page)
            echo 
$i 1;
            else
            echo 
PageLinkHtml($i);
            }
            
            if (
$page $total 1
            echo 
PageLinkHtml($page 1);

Спустя 7 минут, 54 секунды (11.07.2009 - 22:23) KirA3342 написал(а):
Спасибо, немедля ознакомлюсь. Искал поиском, но просто не мог запрос подобрать верный...

Спустя 3 часа, 7 минут, 37 секунд (12.07.2009 - 01:31) Soldier Ghost написал(а):
Виден стиль попова smile.gif чел лучше забей на папова купи книгу хорошую поверь знаю на своём опыте папов до добра не доведёт.

Спустя 9 часов, 3 минуты, 33 секунды (12.07.2009 - 10:34) KirA3342 написал(а):
Да да, оно и есть. Так и получилось....когда скачал РНР книгу и начал изучать вгубь то началось все путаться...щас вот и не знаю что делать sad.gif

Спустя 31 минута, 53 секунды (12.07.2009 - 11:06) Soldier Ghost написал(а):
Изучай не просто тупо читая книгу, а допустим поставь для себя цель например написать гостевую и в последствии вот увидиш ты сам офигееш от своих возможностей smile.gif

Спустя 1 час, 21 минута, 28 секунд (12.07.2009 - 12:28) KirA3342 написал(а):
Цель имеется уже и продигаюсь, так сказать...Как доказательство - данная тема smile.gif

Спустя 2 часа, 41 минута, 16 секунд (12.07.2009 - 15:09) ИНСИ написал(а):
Это не стиль попова, вот откуда я взял в начале Ссылка

А так, поработали и получился нормальный скрипт, если вы критикуете чем вы пользуетесь? примеры есть? просто если у вас лучше, поделитесь ==)))

Спустя 8 минут, 28 секунд (12.07.2009 - 15:17) KirA3342 написал(а):
Не скажу что лучше, но скажу что я сам написал и попрошу оценить по всех строгости но адекватности....на будущее...
PHP
error_reporting(E_ALL & ~E_NOTICE);


if (isset($_GET['page'])){$page = $_GET['page'];} else{$page = 1;}

$q = "SELECT count(*) from data";
$res = mysql_query($q);
$mr = mysql_fetch_row($res);

$onpage = 3;//News for 1 page
$numpost = $mr[0]; //Number of ALL post    $page--*$onpage,$onpage

$page = $page - 1;
$page = $page*$onpage;


$result = mysql_query("SELECT * FROM data LIMIT $page,$onpage");



while(
$row = mysql_fetch_array($result)){
printf("
<table width='400px' align='center' height='200px' border='1' cellspacing='1' cellpadding='1'>
  <tr>
    <td>%s</td>
  </tr>
  <tr>
    <td>%s</td>
  </tr>
</table>
"
, $row['title'], $row['description']);
}


for(
$vpage=0, $num=1; $vpage < $numpost; $vpage=$vpage + $onpage, $num++){
echo "<a href='?page=$num'>$num|</a>";
}


welbox2 Стиль Попова имелось в виду другое. Мы не про Ваш код рассуждали, а о том, что я учился по урокам Попова. И это видно по моему кодированию - манере выбора названия переменным и использованию функций....

А ниже выкладываю функцию друга...тоже в ожидании критики.
PHP
//Генерациястроки перехода по страницам
//$count - количество страниц
//$current - текущий элемент
//$url - урл, на который ссылаются. &id& заменяется на порядковый номер элемента http://site.ru/page%id&.html
//$nextpreview - далее-назад
//$firstlast - в начало-в конец
//$separator - разделитель элементов
//$view - количество элементов, которые показывать
function content_pageline($count,$current,$url,$nextpreview=false,$firstlast=false,$separator='',$view=0)
{
if(
$separator=='')$separator=' ';
if(
$view==0)$view=6;
if(
$view>$count)$view=$count;
$str=array();
if(
$count<=$view)
    {
    for(
$i=1;$i<=$view;$i++)if($current!=$i)$str[]='<a href="'.str_replace('&id&',$i,$url).'">'.$i.'</a>';else$str[]='<b>'.$i.'</b>';
    }
elseif(
$current<=$count && $current>=1)
    {
    
$length=$view-2;
    
$from=intval($current-($length/2));
    if(
$from<2)$from=2;
    
$to=$from+$length;
    if(
$to>=$count)
        {
        
$from=$count-$length-1;
        
$to=$count-1;
        }
    if(
$current!=1)$str[]='<a href="'.str_replace('&id&',1,$url).'">1</a>'.($from>2?'...':'');else$str[]='<b>1</b>';
    for(
$i=$from;$i<=$to;$i++)if($current!=$i)$str[]='<a href="'.str_replace('&id&',$i,$url).'">'.$i.'</a>';else$str[]='<b>'.$i.'</b>';
    if(
$current!=$count)$str[]=($to<($count-1)?'...':'').'<a href="'.str_replace('&id&',$count,$url).'">'.$count.'</a>';else$str[]='<b>'.$count.'</b>';
    }
else return 
false;
$str=implode($separator,$str);
if(
$nextpreview)$str=($current!=? ('<a href="'.str_replace('&id&',($current-1),$url).'">Назад</a>'.$separator):'').$str.($current!=$count ? ($separator.'<a href="'.str_replace('&id&',($current+1),$url).'">Далее</a>'):'');
if(
$firstlast)$str=($current!=? ('<a href="'.str_replace('&id&',1,$url).'">В начало</a>'.$separator):'').$str.($current!=$count ? ($separator.'<a href="'.str_replace('&id&',$count,$url).'">В конец</a>'):'');
return 
$str;
}

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.