0

簡単なページネーションを追加しようとしていますが、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);
?>
4

2 に答える 2

1

あなたはミキシングmysqli_*mysql_*機能です。

使用するスタイルを選択してください: プロシージャル スタイル ( mysqli_connectmysqli_query) またはオブジェクト スタイル (new MySQLiなど)。

これら 2 つを混在させることはできず、2 つの異なるライブラリ (mysql と mysqli) を混在させることもできません。

PHP.netのさまざまなスタイルの詳細を参照してください(例では mysqli の使用方法も示しています)。

于 2013-03-17T14:49:41.993 に答える
0
$sql = "SELECT COUNT(photo)FROM employees";
                           ^--- missing a space here

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

このコードがチュートリアルからのものである場合は、破棄することをお勧めします。コードにはエラー処理がまったくなく、単にすべてが成功したと想定しています。適切に書かれたチュートリアルには、適切なエラー検出/処理があります。また、非推奨/廃止されているため、mysql_*() 関数を使用しないことをお勧めします。

于 2013-03-17T14:57:59.880 に答える