PHP постраничный вывод записей из БД MYSQL

3jzamb1h0a85vu08q.45179764

Приветствую всех!
Рано или поздно перед любым программистом встает вопрос о постраничном выводе данных из БД MYSQL.


Здесь представлен вывод — всё на одной странице.


PHP:

//подключемся к БД
mysql_connect('localhost', 'root', 'root'); 
//название нашей БД
mysql_select_db('testbd');

  // Число блоков на странице 
  $pnumber = 10; 
  // Число страниц справа и слева от текущей страницы < << 2 3 [4] 5 6 >> >
  $linknumber = 2; 
  // Элемент постраничной навигации, передаем параметр GET
  $page = $_GET['list']; 
  if(empty($page)){$page = 1;} 
  $begin = ($page - 1)*$pnumber;

  // Формируем и выполняем SQL-запрос в выбранную таблицу(testtable) 
  //сортируем по ID сверху последние записи
  $select_sql = "SELECT * FROM testtable ORDER BY ID DESC 
LIMIT $begin, $pnumber"; 
  
  $result = mysql_query($select_sql);  
  if(!$result) exit(mysql_error()); 

  // Считаем сколько всего записей
  $query = "SELECT COUNT(*) FROM testtable ORDER BY ID"; 
  $ctg = mysql_query($query); 
  if(!$ctg) puterror("Ошибка при обращении к таблице"); 
  $total = mysql_result($ctg,0); 

if ($total > 0) 
  {  echo "Всего записей в БД: $total"; }
 else {echo "Нет ни одной записи";}

while ($row=mysql_fetch_array($result))
{ 
//выводим наши записи
  echo 'запись №: '.$row['ID'];
}

$number = (int)($total/$pnumber); 
  if((float)($total/$pnumber) - $number != 0) $number++; 
  // Вычисляем начальную позицию 
  if($page - $linknumber < 1) $str_begin = 1; 
  else $str_begin = $page - $linknumber; 
  // Вычисляем конечную позицию 
  if($page + $linknumber > $number) $str_end = $number; 
  else $str_end = $page + $linknumber; 
// Выводим ссылки на другие страницы, данные GET на ту же страницу
  echo "Страницы: "; 
  echo "&nbsp;
<a title='Первая страница' class=menuinfo href=?list=1>>&lt;&lt;</a>&nbsp;"; 
  if($page > 1) 
echo "&nbsp;
<a title='Предыдущая страница' class=menuinfo href=?list=".($page - 1).">
&lt;</a>&nbsp;"; 
  for($i = $str_begin; $i<=$str_end; $i++) 
  { 
    if($page == $i) 
      echo "&nbsp;$i&nbsp;"; 
    else 
      echo "&nbsp;
<a title='Открыть страницу' class=menuinfo href=?list=".$i.">$i</a>&nbsp;"; 
  } 
  if($page < $number) 
echo "&nbsp;
<a title='Следующая страница' class=menuinfo href=?list=".($page + 1).">
&gt;</a>&nbsp;"; 
  
  echo "&nbsp;
<a title='Последняя страница' class=menuinfo href=?list=$number>
&gt;&gt;</a>&nbsp;";  




Оставить комментарий