2013-03-17 103 views
0

我想添加一個簡單的分頁,但從msql更改爲mysqli後,我似乎無法得到它的權利。我不能讓我的頭靠近它,我只是從它開始。 我按照教程,但仍然會得到錯誤。按照教程後mysql分頁錯誤

對於我缺乏知識感到遺憾,但我錯過了什麼?

<?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); 
?> 
+0

說錯誤在這裏:$ retval = mysql_query($ sql,$ db); – 2013-03-17 14:46:41

+0

可以肯定的是,在定義$ db的行中確實有實際的db值在那裏嗎? – 2013-03-17 14:48:58

+0

是的,它連接到數據庫,我可以回顯結果,但試圖添加分頁即時獲取錯誤 – 2013-03-17 14:59:50

回答

1

您在混合mysqli_*mysql_*函數。

請選擇你要使用哪一種樣式:(new MySQLi,ECT)程序的風格(mysqli_connectmysqli_query)或對象樣式

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

瞭解更多關於不同風格on PHP.net(例子還展示瞭如何使用的mysqli)

+0

還注意到有一個在查詢中的空缺(FROM之前): '$ sql =「SELECT COUNT(photo )FROM employees「' ^ – Ander2 2013-03-17 14:52:19

+0

@ Ander2雖然我同意它應該修復,但在MySQL中沒有任何意義:http://sqlfiddle.com/#!2/b2f8c/3 – 2013-03-17 14:54:17

+0

你是對的。首先通知該功能。謝謝。 – Ander2 2013-03-17 14:56:21

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

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

如果這段代碼來自教程,我建議你把它丟掉。你的代碼絕對沒有錯誤處理,並且簡單地假設一切都成功了。一個正確的書面教程將有適當的錯誤檢測/處理。並且還建議不要考慮mysql _ *()函數,因爲它們已被廢棄/廢棄。

+0

,這個空間沒有意義(http://sqlfiddle.com/#!2/b2f8c/3)。 – 2013-03-17 15:10:38