2010-08-13 3 views
0

Ниже приведен код для разбивки на страницы. Проблема, которую я испытываю, заключается в том, что количество страниц отображается правильно, но когда я нажимаю на страницу 2, я просто получаю пустую страницу.Проблема pagination PHP, дает пустую страницу

 <?php 
if (isset($_POST['edit'])) { 
      if (empty($_GET['page'])) { 
       $page=0; 
      } 
      else {$page = (int)$_GET['page'];} 


     if ($page == 0){ $page = 1;} 

      if (ob_get_level() == 0) ob_start(); 


     $per_page = 10; 
     $p = ($page - 1) * $per_page; 


     $sql="select * from tba where word='$word' order by id DESC limit ".$p.",".$per_page; 
     $result=mysql_query($sql) or die(mysql_error()); 



     while ($row=mysql_fetch_array($result)) { 
      $id=$row['id']; 
      $word=$row['word']; 
      $pr=$row['pr']; 


      if ($pr==0) { 


      } 
    else { 
     ?> 
     <td><span class="style5"><?php echo $id; ?> </span></td> 
     <td><span class="style5"><?php echo $word?></span></td> 
    <?php 

      } 
        $pages = floor($total/$per_page) + ($total%$per_page>0?1:0); 
    ?> 
    <center> 
    <?php 
     } 
    for ($i=1;$i<=$pages;$i++) { 
     print "<a href='?page=".$i."'>".$i."</a> "; 

    } 

    echo "<br>You are in page ".$_GET['page']; 
} 

Возможно, кто-нибудь скажет мне, в чем проблема?

+0

время, чтобы узнать отладки. –

ответ

0

Похоже, что строка $ pages = floor ... находится внутри цикла while, что является первой проблемой. Кроме того, $ total никогда не устанавливается.

1

Пришло время изучить отладку.

На самом деле, мы можем только угадать, что пойдет не так.
Хотя это только программист, который может сказать это точно. Это их работа и долг.
Искусство поиска того, что происходит не так, называется отладкой.

Для этого вам необходимо проверить каждый результат операции.
Например, если у вас возникли какие-то вопросы?
Если нет - почему? Откуда эта переменная $ word? Но на второй странице?

Вы должны передать все необходимые данные на другие страницы, а также переменную $ page.

+0

Ее * или * его долг ... если мы будем думать о каждой возможной детали;) –

+0

Я отлаживал проблему, потому что в коде присутствовала кнопка отправки. : D Исправлено. – LiveEn

+0

Политическая корректировка. –

0

Переменная $total никогда не устанавливается делает подсчет общего количества страниц неверную

Вам нужно получить сначала общее количество строк с запросом аналогично:

$sql="SELECT COUNT(id) AS rows FROM tba where word='$word'"; 

Вместо того чтобы делать «пол» и добавление «1», когда имеется «другая страница», вы можете использовать «ceil»

Вместо:

$pages = floor($total/$per_page) + ($total%$per_page>0?1:0); 

Вы можете использовать:

$pages = ceil($total/$per_page); 
0

Ну, весь выход в if заявление, и вы не разместил параметры POST ($_POST['edit'])

Смежные вопросы