2014-12-21 4 views
1

전자 상거래 사이트를 개발 중입니다.() 예상 매개 변수 (1) mysqli_result되는, 부울 C에 주어진 mysqli_fetch_array :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; 

그러나 점점 :

경고 나는 코드가 여기에 사용자 이름을 $_SESSION['REMOTE_ADDR']

을 얻으려면 \ 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

쿼리가 의미가 없습니다. 'group by '이없는'sum()'을 가지므로 한 행을 리턴합니다. 그러나, 당신은'order by '명령으로 하나 이상의 행을 기다리고 있다고 제안합니다. –

+0

@ Fred-ii- 나는 코드를 편집했지만 동일한 오류가 발생합니다. – hasan

답변

0

다음 방법을 사용하십시오. 전에 변수를 탈출, 쉬워집니다.

(!) 참고 :

난 당신이 $_SERVER["REMOTE_ADDR"] 대신 $_SESSION["REMOTE_ADDR"]를 사용하는 의미가 확실 해요.

$_SESSION["REMOTE_ADDR"]은 유효한 세션 변수가 아닙니다.

상담원 : $_SERVER 변수. 고든 (Linoff)는 의견에 상태로

그러나, 및 :

코드 :

$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; 

각주

group bysum()을 가지고, 그래서 그것은 한 행을 반환합니다. 그러나 order by을 사용하면 둘 이상의 행이 필요할 것으로 예상됩니다.

+0

감사합니다. D – hasan

+0

@ 하산 환영합니다. 하산, 기쁘게 생각합니다. –

+0

@ 하산 해결 된 것으로 표시해야 함 :) –

관련 문제