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

Форум PHP

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

 

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

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

тема: назад - вперед в постраничном выводе
 
 автор: solomusic   (28.08.2008 в 16:28)   письмо автору
 
 

Здравствуйте, у Вас на форуме я нашла постраничный вывод, переделала его под свое, но
осталась маленькая проблемка, не получается дописать "назад" и "вперед" чтоб в одну строчку
выводилось к примеру максимум 10 номеров, а потом чтоб посмотреть 11 нужно нажимать
вперед... вот как такое сделать? подскажите пожалуйста.
вот ссылка на то, откуда я брала постраничный вывод:
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=14131
я взяла вариант не 1 2 3 а 1-10 11-20, мне это больше подходит

  Ответить  
 
 автор: solomusic   (28.08.2008 в 17:10)   письмо автору
 
   для: solomusic   (28.08.2008 в 16:28)
 

ой, все я со всем разобралась

  Ответить  
 
 автор: solomusic   (28.08.2008 в 17:20)   письмо автору
 
   для: solomusic   (28.08.2008 в 17:10)
 

только нашла одну ошибку... как ее исправить? у меня номерация идет не по порядку, и
некоторых номеров вообще нет, ибо удаляется. А выводиться страниц на много больше чем
нужно... Вот к примеру есть информации на 4 страницы с постраничным выводом по 20.
Последний номер 299 и 1. Естественно всех 299 строчек нету. А выводит страниц на все 299.
Как это исправить???
вот весь код:

<?php
ini_set
('display_errors',1);
    
Error_Reporting(E_ALL & ~E_NOTICE);
  
// Устанавливаем соединение с сервером MySQL 
  
require_once("config.php"); 
  
// Элемент постраничной навигация 
  
if(empty($_GET['page'])) $page 1
  else 
$page $_GET['page']; 
  
// Число ссылок в постраничной навигации 
  
$page_link 10
  
// Число позиций на странице 
  
$pnumber 20
  
// Постраничная навигация 
  
$first = ($page 1)*$pnumber
  
// Формируем и выполняем SQL-запросы   
  
$query "SELECT COUNT(*) FROM dob"
  
$num mysql_query($query); 
  if(!
$num) exit("Ошибка при обращении к таблице"); 
  
// Ввыводим ссылки на другие страницы 
  
$total mysql_result($num,0); 
  
// Формируем SQL-запрос на извлечение записей 
  
$query "SELECT * FROM dob  WHERE `type` LIKE 'aa' ORDER BY id desc LIMIT $first$pnumber ";
  
$dmn mysql_query($query); 
  if(!
$dmn) exit("Ошибка при обращении к таблице"); 
  
// Если имеется хотя бы одна запись - выводим таблицу 
  
if(mysql_num_rows($dmn) > 0
  {
  echo 
"<TABLE cellspacing='0' cellpadding='0' width='100%' bgcolor='#458ea0' border='0'>
<TBODY>
 <TR>
  <TD>
   <TABLE cellspacing='1' cellpadding='2' width='100%' border='0'>
   <TBODY>
    <TR>
     <TD align='center'><FONT size='2'><B>№</B></FONT></TD>
     <TD width='19%' align='center'><FONT color='#ffffff' size='2'><B>район</B></FONT></TD>
     <TD width='19%' align='center'><FONT color='#ffffff' size='2'><B>улица</B></FONT></TD>
     <TD width='8%' align='center'><FONT color='#ffffff' size='2'><B>этаж</B></FONT></TD>
     <TD width='20%' align='center'><FONT color='#ffffff' size='2'><B>метраж/м.кв.</B></FONT></TD>
     <TD width='15%' align='center'><FONT color='#ffffff' size='2'><B>цена</B></FONT></TD>
     <TD width='17%' align='center'><FONT color='#ffffff' size='2'><B>телефон</B></FONT></TD>
     <TD width='40%' align='center'><FONT color='#ffffff' size='2'><B>подробно</B></FONT></TD>
     <TD width='20%' align='center'><FONT color='#ffffff' size='2'><B>дата</B></FONT></TD>
    </TR>"
;
       while(
$res=mysql_fetch_array($dmn))
        {
         echo 
"<TR bgcolor=#FLEFE5>";
         echo 
"<TD ALIGN=CENTER>".$res['id']."</TD>";
         echo 
"<TD ALIGN=CENTER><B><i>".$res['area']."</i></B></TD>";
         echo 
"<TD ALIGN=CENTER>".$res['street']."</TD>";
         echo 
"<TD ALIGN=CENTER>".$res['floor']."</TD>";
         echo 
"<TD ALIGN=CENTER>".$res['metric']."</TD>";
         echo 
"<TD ALIGN=CENTER>".$res['price']." ".$res['val']."</TD>";
         echo 
"<TD ALIGN=CENTER>".$res['phone']."</TD>";
         echo 
"<TD width='30%'  ALIGN='CENTER'><a href='#' onclick='win(\"" htmlentities
($res['detail'], ENT_QUOTES"cp1251") . "\", \"" htmlentities($res['street'], ENT_QUOTES"cp1251") . 
"\", \"" htmlentities($res['phone'], ENT_QUOTES"cp1251") . "\",\"".htmlentities($res['img'], 
ENT_QUOTES"cp1251")."\")'>открыть</a></TD> ";
         echo 
"<TD ALIGN=CENTER>".$res['date']."</TD>";
         echo 
"</TR>";
         } 
    echo 
"<TR>
     <TD align='center'></TD>
     <TD align='center'></TD>
     <TD align='center'></TD>
     <TD align='center'></TD>
     <TD align='center'></TD>
     <TD align='center'></TD>
     <TD align='center'></TD>
     <TD align='center'></TD>
    </TR>
   </TBODY>
   </TABLE>
  
  </TD>
 </TR>
</TBODY>
</TABLE> "
;

  
// Постраничная навигация 
  
pager($page$total$pnumber$page_link"&order=$_GET[order]"); 
  
// Функция постраничной навигации 
  // $page - текущая страница, передаётся через GET-параметр page 
  // $total - общее число позиций в базе данных 
  // $pnumber - число позиций на одной странице 
  // $page_link - число ссылок слева и справа от выбранной страницы 
  
function pager($page$total$pnumber$page_link$parameters
  { 
    
// Вычисляем число страниц в системе 
    
$number = (int)($total/$pnumber); 
    if((float)(
$total/$pnumber) - $number != 0$number++; 
    
// Проверяем есть ли ссылки слева 
    
echo "Страницы:";
    if(
$page $page_link 1
    { 
      echo 
"<a href=$_SERVER[PHP_SELF]?page=1{$parameters}> <nobr>[1-$pnumber]</nobr>
</a>&nbsp;<em class=currentpage><nobr>&nbsp;...&nbsp;</nobr> </em>&nbsp;"

      
// Есть 
      
for($i $page $page_link$i<$page$i++) 
      { 
          echo 
"&nbsp;<a href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i 1)*
$pnumber 1)."-".$i*$pnumber."]</nobr></a>&nbsp;"
      } 
    } 
    else 
    { 
      
// Нет 
      
for($i 1$i<$page$i++) 
      { 
          echo 
"&nbsp;<a href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i 1)*
$pnumber 1)."-".$i*$pnumber."]</nobr></a>&nbsp;"
      } 
    } 
    
// Проверяем есть ли ссылки справа 
    
if($page $page_link $number
    { 
      
// Есть 
      
for($i $page$i<=$page $page_link$i++) 
      { 
        if(
$page == $i
          echo 
"<em class=currentpage><nobr>&nbsp;[".(($i 1)*$pnumber 1)."-".$i*
$pnumber."]&nbsp;</nobr> </em>"
        else 
          echo 
"&nbsp;<a href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i 1)*
$pnumber 1)."-".$i*$pnumber."]</nobr></a>&nbsp;"
      } 
      echo 
"<em class=currentpage><nobr>&nbsp;...&nbsp;</nobr> </em>&nbsp;<a href=$_SERVER
[PHP_SELF]?page=
$number{$parameters}> <nobr>[".(($number 1)*$pnumber 1)."-$total]
</nobr></a>&nbsp;"

    } 
    else 
    { 
      
// Нет 
      
for($i $page$i<=$number$i++) 
      { 
        if(
$number == $i
        { 
          if(
$page == $i
            echo 
"<em class=currentpage><nobr>&nbsp;[".(($i 1)*$pnumber 1)."-$total]&nbsp;
</nobr></em>"

          else 
            echo 
"&nbsp;<a href=$_SERVER[PHP_SELF]?page=$i{$parameters}>[".(($i 1)*$pnumber 
1)."-$total]</a>&nbsp;"
        } 
        else 
        { 
          if(
$page == $i
            echo 
"<em class=currentpage><nobr>&nbsp;[".(($i 1)*$pnumber 1)."-".$i*
$pnumber."]&nbsp;</nobr> </em>"
          else 
            echo 
"&nbsp;<a href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i 1)*
$pnumber 1)."-".$i*$pnumber."]</nobr></a>&nbsp;"
        } 
      } 
    } 
    echo 
"<br><br>"
  } 
?>

  Ответить  
 
 автор: Trianon   (30.08.2008 в 12:59)   письмо автору
 
   для: solomusic   (28.08.2008 в 17:20)
 

  $query = "SELECT COUNT(*) FROM dob"; 
//...
  $query = "SELECT * FROM dob  WHERE `type` LIKE 'aa' ORDER BY id desc LIMIT $first, $pnumber ";

Запрос, определяющий общее число нужных записей, и запрос, читающий их из таблицы, должны иметь одинаковые критерии отбора. У Вас во втором WHERE `type` LIKE 'aa' стоит, а в первом - нет.

  Ответить  
 
 автор: solomusic   (30.08.2008 в 22:39)   письмо автору
 
   для: Trianon   (30.08.2008 в 12:59)
 

спасибо... но я нашла ответ через пол часа после того как дала вопрос в форум... но СПАСИБО ВАМ БОЛЬШОЕ!

  Ответить  
 
 автор: mihdan   (30.08.2008 в 03:32)   письмо автору
 
   для: solomusic   (28.08.2008 в 16:28)
 

http://softtime.ru/info/articlephp.php?id_article=33
http://www.tigir.com/paging.htm

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

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