【问题标题】:PHP MYSQL PAGING RESULTSPHP MYSQL 分页结果
【发布时间】:2012-09-05 04:26:01
【问题描述】:

我想创建 php 分页,基本页面是“第 1 页”,页面链接应从“第 2 页”开始,将“第 1 页”链接作为普通文本而不是链接,当我在“第二页”时" "Page 1" 文本变成了指向 "First Page" 的链接。

喜欢: 在基本页面上时。 /orders.php

<div id="page-links">
<b>1</b>, 
<a href="/orders.php?pagenum=2">2</a>, 
<a href="/orders.php?pagenum=3">3</a>
</div>

在第 2 页时。 /orders.php?pagenum=2

<div id="page-links">
<a href="/orders.php?pagenum=1">1</a>, 
<b>2</b>, 
<a href="/orders.php?pagenum=3">3</a>
</div>

我有这个 php 页面:

   <table>
      <?php
      $orders_check_raw = "select * from " . $orders . " where customers_id = '" . (int) $user_id . "'";
      $orders_check_query = mysql_query( $wpdb->prepare( $orders_check_raw ) );
      while ($orders_check = mysql_fetch_array( $orders_check_query )) {
        $blog_details = get_blog_details( $orders_check['blog_id'] );
        ?>

        <tr>
          <th class="check-column"><input type="checkbox" name="order[]" value=""></th>
          <td><?php echo str_pad( $orders_check['orders_id'], 7, '0', STR_PAD_LEFT ) . '<span style="display:none;">' . ltrim( str_pad( $orders_check['orders_id'], 7, '0', STR_PAD_LEFT ), '0' ) . '</span>'; ?></td>
          <td><?php echo $orders_check['payment_method']; ?></td>
          <td><?php echo date_short( $orders_check['date_purchased'] ); ?></td>
          <td><?php echo status_name( $orders_check['orders_status'] ); ?></td>
        </tr>
      <?php } ?>
    </tbody>
    </table>

谢谢。

【问题讨论】:

  • 问题是什么?你有什么错误吗?

标签: php mysql data-paging


【解决方案1】:

你可以自己写一个php分页,这需要一点点功夫。

检查this site。它有关于如何使用 PHP 和 MySQL 创建分页的指南?你会发现它很有用。

它是可配置的,以下是一些简短的设置:

  1. 连接数据库的代码
  2. 您的表名。
  3. 每边显示的相邻页面数。
  4. 每页显示的项目数。

【讨论】:

    【解决方案2】:

    理想情况下,您应该定义一个常量来显示每页的条目。基于此,您应该为数据库查询设置偏移量。

    例如:

    define('ENTRIES_PER_PAGE', 15);
    
    $orders_check_raw = "SELECT * FROM " . $orders . " WHERE customers_id = '" . (int) $user_id . "'";
    
    $offset = $_GET['pagenum'] * ENTRIES_PER_PAGE;
    $orders_check_raw .= "LIMIT " . ENTRIES_PER_PAGE . ", " . $offset;
    
    $orders_check_query = mysql_query( $wpdb->prepare( $orders_check_raw ) );
    

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      我认为您可以使用 $_GET 和 if...else 语句来实现您想要的结果。对于 if..else http://www.w3schools.com/php/php_if_else.asp 和对于 GET http://php.net/manual/en/reserved.variables.get.php

      if($_GET['pagenum']==1){
         echo '<div id="page-links"><b>1</b>, <a href="/orders.php?pagenum=2">2</a>, <a href="/orders.php?pagenum=3">3</a></div>';
      }
      else if (....) {
         ...
      }
      else (...) {
         ...
      }
      

      【讨论】:

      • 如果您需要更多帮助,我可以完成代码,我确信有不同的方法可以实现您想要的结果,但这是我想到的第一件事。祝你好运!
      猜你喜欢
      • 2012-05-19
      • 1970-01-01
      • 2011-06-14
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多