2014-12-21 152 views
1

我正在開發電子商務網站。我想要得到的用戶名$_SESSION['REMOTE_ADDR']從mysql獲取數據時出現數據庫錯誤

的代碼是在這裏:

$new_sql = 'SELECT 
       sum(amount) as items_total 
       FROM 
       products_added 
       where `username` = '.mysqli_real_escape_string($conn, $_SESSION["REMOTE_ADDR"]).' 
       ORDER BY id'; 

     $resu  = mysqli_query($conn, $new_sql); 
     $itemsTotal = mysqli_fetch_array($resu); 
     $grandTotal = ($itemsTotal['items_total']); 
     echo $grandTotal; 

但要:

警告:mysqli_fetch_array()預計參數1被mysqli_result,布爾在C中給出:\ xampp \ htdocs \ orlando \ php \ include \ content.php on line 120

+0

'mysql_real_escape_string' <=不是'mysqli_'庫的一部分。使用其等價的'i'並將DB con參數傳遞給它。還要確保你已經開始了會話。此外,逗號'as items_total,'是一個問題,'WHERE'子句在'FROM'後面# –

+0

您的查詢沒有意義。你有一個'sum()'沒有'group by',所以它返回一行。然而,你有'order by'提示你期望不止一行。 –

+0

@ Fred-ii-我編輯了代碼,但得到相同的錯誤。 – hasan

回答

0

使用以下方法。之前退出變​​量,更容易。

旁註:

我敢肯定你的意思是使用$_SERVER["REMOTE_ADDR"]而不是$_SESSION["REMOTE_ADDR"]

$_SESSION["REMOTE_ADDR"]不是有效的會話變量。

諮詢:http://php.net/manual/en/reserved.variables.server.php$_SERVER變量。

代碼:

$remote_address = mysqli_real_escape_string($conn, $_SERVER["REMOTE_ADDR"]); 
$new_sql = "SELECT 
       sum(amount) as items_total 
       FROM 
       products_added 
       where `username` = '".$remote_address."' 
       ORDER BY id"; 

$resu = mysqli_query($conn, $new_sql) or die(mysqli_error($conn)); 
$itemsTotal = mysqli_fetch_array($resu); 
$grandTotal = $itemsTotal['items_total']; 
echo $grandTotal; 

腳註:

然而,如戈登(Linoff)的評論指出:

你有sum()沒有group by,所以它返回一行。但是,您有一個order by建議您期待多行。

+0

感謝現在的工作:D – hasan

+0

@hasan不客氣哈桑,*歡呼*很高興我能幫上忙。 –

+0

@hasan記住標記爲已解決:) –

相關問題