2014-03-05 81 views
0

我有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>"; 
} 

?> 
+0

你得到的数据?你必须通过在“if”子句中放置东西来调试。有一些调试工具是很好的,但如果你不用,那么你可以通过放置一个“die”来以基本的方式进行测试。你希望你的代码去哪里。如果页面仍然加载,那么它没有达到那一点。 – hamobi

+0

@hamobi $ Query =“SELECT * FROM $ Table_4”; 输出表中的所有数据。问题是select查询中的计数。我不确定如何使用它。 – Nullbreaker

回答

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>"; 
} 

?> 
+0

我mysqli连接mysql查询很多次,是的,我知道这是马虎,但我正在学习。 – Nullbreaker

+0

我的答案的第一部分是至关重要的:) – Kiko

+0

检查我的答案,我更正了你的脚本。 – Kiko

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的

+0

,这并不表明从回声声明不再显示任何数据和字段名,以前我看到 EMP ID EMP NAME EMP薪金 但没有数据。 – Nullbreaker

+0

您的脚本在您的第一个查询定义的前一个'$ result'上运行。如果它仍然不是你想要的,你的第二个查询可能会出错 –

+0

FélixGagnon-Grenier我删除了第一个查询仍然没有数据。 – Nullbreaker

相关问题