我看不到分页查询中的任何数据

时间:2014-03-05 17:33:03

标签: php mysql pagination

我在数据库中有3条记录,希望使用以前的下一个链接在单独的页面上显示每条记录的数据。

此脚本不会出错,但也不会显示任何数据。 connect.php连接到我的数据库并声明表名的变量。

<?php
include "connect.php";
error_reporting(E_ERROR);
$rec_limit = 1;

$Link = mysqli_connect($Host, $User, $Password, $Database);
$Query = "SELECT count(emp_id) FROM $Table_4";
$result = mysql_query($Query);
$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);

$Query = "SELECT emp_id, emp_name, emp_salary ".
       "FROM $Table_4".
       "LIMIT $offset, $rec_limit";
while ($row = mysql_fetch_array($result))
{
    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\">Previous</a> |";
   echo "<a href=\"$_PHP_SELF?page=$page\">Next</a>";
}
else if( $page == 0 )
{
   echo "<a href=\"$_PHP_SELF?page=$page\">Next Record</a>";
}
else if( $left_rec < $rec_limit )
{
   $last = $page - 2;
   echo "<a href=\"$_PHP_SELF?page=$last\">Previous Record</a>";
}

?>

2 个答案:

答案 0 :(得分:0)

您没有使用自定义偏移量和限制运行查询,除了脚本顶部用于获取总行数之外,没有$ result。

编辑:你使用mysqli_connect和mysql_query。我从来没有使用过mysqli,但在我看来,你不应该能够与mysqli_函数建立连接,然后使用mysql_函数。我可能错了,亲自检查一下。

编辑2:你的例子中有很多错误,更容易纠正它们,所以将我的代码与你的代码进行比较,看看为什么你的代码不起作用:

<?php

include "connect.php";

error_reporting(E_ALL - E_NOTICE);
ini_set("display_errors", 1);

$rec_limit = 1;

$Link = mysqli_connect($Host, $User, $Password, $Database);
$Query = "SELECT count(emp_id) FROM $Table_4";
$result = mysqli_query($Link, $Query);
$row = mysqli_fetch_row($result);
$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);

$Query = "SELECT emp_id, emp_name, emp_salary ".
       "FROM $Table_4 ".
       "LIMIT $offset, $rec_limit";

$result = mysqli_query($Link, $Query);

while ($row = mysqli_fetch_array($result))
{
    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\">Previous</a> |";
   echo "<a href=\"$_PHP_SELF?page=$page\">Next</a>";
}
else if( $page == 0 )
{
   echo "<a href=\"$_PHP_SELF?page=$page\">Next Record</a>";
}
else if( $left_rec < $rec_limit )
{
   $last = $page - 2;
   echo "<a href=\"$_PHP_SELF?page=$last\">Previous Record</a>";
}

?>

答案 1 :(得分:0)

您不执行查询。这里:

$Query = "SELECT emp_id, emp_name, emp_salary ".
       "FROM $Table_4".
       "LIMIT $offset, $rec_limit";
$result = mysql_query($Query);
while ($row = mysql_fetch_array($result))

不推荐使用mysql_ *扩展程序,请不要再使用它,转向pdo或mysqli