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

Форум PHP

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

 

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

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

тема: постраничная навигация
 
 автор: lilu   (20.04.2007 в 09:28)   письмо автору
 
 

Не могу найти ошибку - помогите!!!!!!!
определяет кол-во страниц - правильно, в каждой должно быть по 5 объявлений, а у меня почему-то выводятся все и на каждой странице


<form style="width:448px" method="post" action="<?php echo $_SERVER['REQUEST_URI']?>" target="_self">
 <? if(empty($_GET['page'])) $page 1
  else 
$page $_GET['page']; 

  
// Число ссылок в постраничной навигации 
  
$page_link 3
  
// Число позиций на странице 
  
$pnumber 5
  
// Постраничная навигация 
  
$first = ($page 1)*$pnumber

 
$q="SELECT count(id)
 FROM full JOIN smi_ob ON  full.id_full = smi_ob.id_full
 WHERE  smi_ob.new_ob='1' 
  AND full.text like '%"
.$pole_poisk."%'"

 
$num=mysql_query($q,$db);
   if(!
$num) exit("Ошибка при подсчёте количества записей"); 
  
// Ввыводим ссылки на другие страницы 
  
$total mysql_result($num,0); 

    
//$parameters["idR"] = $idR;
    
$parameters["pole_poisk"] = $pole_poisk;
 
  function 
pager($page$total$pnumber$page_link$parameters)  
  {  
    
// Вычисляем число страниц в системе  
    
$number = (int)($total/$pnumber);  
    if((float)(
$total/$pnumber) - $number != 0$number++;  
     
$link "";
 foreach (
$parameters as $name =>  $value) {
    if (
strlen($link) > 0)    $link .= "&";    
    
$link .= urlencode($name) . "=" urlencode($value);}
    
//echo "$name-$value<br>";
  
    // Проверяем есть ли ссылки слева  
    
if($page $page_link 1)  
    {  
      echo 
"<a class=menu href=$_SERVER[PHP_SELF]?page=1&$link>[1-$pnumber]</a>&nbsp;&nbsp;...&nbsp;&nbsp;";  
      
// Есть  
      
for($i $page $page_link$i<$page$i++)  
      {  
          echo 
"&nbsp;<a class=menu href=$_SERVER[PHP_SELF]?page=$i&$link>[".(($i 1)*$pnumber 1)."-".$i*$pnumber."]</a>&nbsp;";  
      }  
//for
    
}  //if
    
else  
    {  
      
// Нет  
      
for($i 1$i<$page$i++)  
      {  
          echo 
"&nbsp;<a class=menu href=$_SERVER[PHP_SELF]?page=$i&$link>[".(($i 1)*$pnumber 1)."-".$i*$pnumber."]</a>&nbsp;";  
      }  
//for
    
}  //else
    // Проверяем есть ли ссылки справа  
    
if($page $page_link $number)  
    {  
      
// Есть  
      
for($i $page$i<=$page $page_link$i++)  
      {  
        if(
$page == $i)  { echo "&nbsp;<em class=menu>[".(($i 1)*$pnumber 1)."-".$i*$pnumber."]</em>&nbsp;";  }
        else  { echo 
"&nbsp;<a  class=menu href=$_SERVER[PHP_SELF]?page=$i&$link> <nobr>[".(($i 1)*$pnumber 1)."-".$i*$pnumber."]</a>&nbsp;";  }
      }  
//for
      
echo "&nbsp;...&nbsp;&nbsp;<a  class=menu href=$_SERVER[PHP_SELF]?page=$number&$link>[".(($number 1)*$pnumber 1)."-$total]</a>&nbsp;";  
    }  
//if
    
else  
   {  
      
// Нет  
      
for($i $page$i<=$number$i++)  
      {  
        if(
$number == $i)  
        {  
          if(
$page == $i)  {echo "&nbsp;<em class=menu>[".(($i 1)*$pnumber 1)."-$total]</em>&nbsp;";  }
          else  { echo 
"&nbsp;<a class=menu href=$_SERVER[PHP_SELF]?page=$i&$link>[".(($i 1)*$pnumber 1)."-$total]</a>&nbsp;"; }
        }  
//if
        
else  
        {  
          if(
$page == $i)  {echo "&nbsp;<em class=menu>[".(($i 1)*$pnumber 1)."-".$i*$pnumber."]</em>&nbsp;";}
          else  { echo 
"&nbsp;<a class=menu href=$_SERVER[PHP_SELF]?page=$i&$link>[".(($i 1)*$pnumber 1)."-".$i*$pnumber."]</a>&nbsp;";  }
        } 
//else 
      
}  //for
    
}  //else
    
echo "<br><br>";  
  } 
//function

$q1="SELECT * FROM table";
$rezmysql_query($q1,$db);

 echo 
"<table border='0' bordercolor='white' cellspacing='0' cellpadding='0' width='448'>\n";
                      while (
$postrow=mysql_fetch_array($rez))
                      {
                      
printf("<tr><td>%s</td></tr>\n",$postrow['0']);
                      
printf("<tr><td>%s</td></tr>\n",$postrow['1']);
                      
printf("<tr><td>%s</td></tr>\n",$postrow['2']);
                      
printf("<tr><td>%s</td></tr>\n",$postrow['3']);
      }
                      echo 
"</table>\n";    

    
// Постраничная навигация 
    
pager($page$total$pnumber$page_link$parameters); 
}    }
?>



</form>

   
 
 автор: KPETuH   (20.04.2007 в 09:48)   письмо автору
 
   для: lilu   (20.04.2007 в 09:28)
 



$q1="SELECT * FROM table"; 
$rez= mysql_query($q1,$db); 

 echo "<table border='0' bordercolor='white' cellspacing='0' cellpadding='0' width='448'>\n"; 
                      while ($postrow=mysql_fetch_array($rez)) 
                      { 
                      printf("<tr><td>%s</td></tr>\n",$postrow['0']); 
                      printf("<tr><td>%s</td></tr>\n",$postrow['1']); 
                      printf("<tr><td>%s</td></tr>\n",$postrow['2']); 
                      printf("<tr><td>%s</td></tr>\n",$postrow['3']); 
      } 


Естественно у вас выводится на каждо странице, где у вас указаны граныцы с какого по какой выводить? В выводите все + создаете вероятно правильные ссылки для постраничной нафигации но вывод у вас идет всех сообщений.

надо использовать примерно вот такой запрос


$sql=mysql_query("select * from koment where id_st='$id_kom' order by date desc limit $st,$kolvo;");


где за выбор нужных сообщение отвечает


limit $st,$kolvo

где $st c какой позиции выбирать сообщения , а $kolvo - сколько сообщений выбирать...

   
 
 автор: lilu   (20.04.2007 в 11:29)   письмо автору
 
   для: KPETuH   (20.04.2007 в 09:48)
 

точно забыла совсем
спасибо!!!!!! :)))))

   
Rambler's Top100
вверх

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