遵循教程后的mysql分页错误

时间:2013-03-17 14:46:02

标签: php mysql database pagination

我希望添加一个简单的分页,但在从msql更改为mysqli后,我似乎无法正确。我无法理解它,我只是从它开始。 我遵循了教程,但仍然遇到错误。

抱歉我缺乏知识,但我缺少什么?

<?php 
$db = new mysqli("host", "username", "password", "mydatabase");

if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');

}
$rec_limit = 10;


$sql = "SELECT COUNT(photo)FROM employees";
$retval = mysql_query( $sql, $db );
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 photo, link".
"FROM employees ".
"LIMIT $offset, $rec_limit";

$retval = mysql_query( $sql, $db );
if(! $retval )
{
die('Could not get data: ' . mysql_error());
}


while($row = mysql_fetch_array($retval, MYSQL_ASSOC))




echo "<br /><br />";

echo '','<img src="/upload/' . $row->photo . '" border=0>';

echo '', $row->link;



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($db);
?>

2 个答案:

答案 0 :(得分:1)

您正在混合使用mysqli_*mysql_*个功能。

请选择您要使用的样式:程序样式(mysqli_connectmysqli_query)或对象样式(new MySQLi等)

你不能混合那些2,你也不能混合2个不同的库(mysql和mysqli)

详细了解不同的样式on PHP.net(示例还说明了如何使用mysqli)

答案 1 :(得分:0)

$sql = "SELECT COUNT(photo)FROM employees";
                           ^--- missing a space here

$sql = "SELECT photo, link".
                          ^--- missing space here
"FROM employees ".

如果这段代码来自教程,我建议你抛弃它。您的代码绝对没有错误处理,只是假设一切都成功了。正确编写的教程将有适当的错误检测/处理。并建议不要使用mysql _ *()函数,因为它们已被弃用/过时。