PHP MySQL进行分页

PHP MySQL进行分页

你的SQL SELECT语句可能会返回成千上万条记录,但把所有结果都显示在一页上不是一个好主意。因此,我们可以根据需要将结果分成多个页面。

分页意味着将查询结果显示在多个页面中,而不仅仅是放在一个很长的页面中。

MySQL通过使用 LIMIT 子句来生成分页,该子句接受两个参数。第一个参数是偏移量(即从第几条记录开始),第二个参数是从数据库返回多少条记录。

下面是一个使用 LIMIT 子句生成分页的简单示例。

示例

尝试以下示例,每页显示10条记录。

<html>

   <head>
      <title>Paging Using PHP</title>
   </head>

   <body>
      <?php
         dbhost = 'localhost:3036';dbuser = 'root';
         dbpass = 'rootpassword';rec_limit = 10;
         conn = mysql_connect(dbhost, dbuser,dbpass);

         if(! conn ) {
            die('Could not connect: ' . mysql_error());
         }
         mysql_select_db('test_db');

         /* Get total number of records */sql = "SELECT count(emp_id) FROM employee ";
         retval = mysql_query(sql, conn );

         if(!retval ) {
            die('Could not get data: ' . mysql_error());
         }
         row = mysql_fetch_array(retval, MYSQL_NUM );
         rec_count =row[0];

         if( isset(_GET{'page'} ) ) {page = _GET{'page'} + 1;offset = rec_limit *page ;
         }else {
            page = 0;offset = 0;
         }

         left_rec =rec_count - (page *rec_limit);
         sql = "SELECT emp_id, emp_name, emp_salary ".            "FROM employee ".
            "LIMIToffset, rec_limit";retval = mysql_query( sql,conn );

         if(! retval ) {
            die('Could not get data: ' . mysql_error());
         }

         while(row = mysql_fetch_array(retval, MYSQL_ASSOC)) {
            echo "EMP ID :{row['emp_id']}  <br> ".
               "EMP NAME : {row['emp_name']} <br> ".
               EMP SALARY : {row['emp_salary']} <br> ".
               "--------------------------------<br>";
         }

         if( page>0 ) {last = page - 2;
            echo "<a href = \"_PHP_SELF?page = last\">Last 10 Records</a> |";
            echo "<a href = \"_PHP_SELF?page = page\">Next 10 Records</a>";
         }else if(page == 0 ) {
            echo "<a href = \"_PHP_SELF?page =page\">Next 10 Records</a>";
         }else if( left_rec<rec_limit ) {
            last =page - 2;
            echo "<a href = \"_PHP_SELF?page =last\">Last 10 Records</a>";
         }

         mysql_close($conn);
      ?>

   </body>
</html>

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程