2013-10-18 87 views
0

进出口编码一个购物车,但我得到的总价格问题。PHP的MySQL获得总价

这是我尝试代码的功能:

function get_total_price(){ 
    $result=mysql_query("SELECT SUM(price) FROM db.cart WHERE user_id='".mysql_real_escape_string($_SESSION['user_id'])."'") or die(); 
    return $result; 
    } 

但结果我得到

资源ID#10

希望有人可以提供帮助。首先香港专业教育学院开始编码无功能,但现在我想学习如何

+1

任何PHP/MySQL的教程将涵盖这一点。 –

回答

0

所以第一mysql_query折旧,你应该在mysqli_query寻找代替。但实际上它的工作方式是正确的,当SQL执行时,如果查询成功,您将返回链接标识。然后,您需要打开使用例如mysql_fetch_array所以最终的脚本是:

function get_total_price(){ 
    $result=mysql_query("SELECT SUM(price) FROM db.cart WHERE user_id='". 
     mysql_real_escape_string($_SESSION['user_id'])."'") or die(); 
    $row= mysql_fetch_array($result); 
    mysql_free_result($result);//Be a good citizen and release the memory 
    return $row[0];//The actual sum 
    } 

或者与新的库:

//mysqli is a link to the database 
function get_total_price($mysqli){ 
    $result=$mysqli->query("SELECT SUM(price) FROM db.cart WHERE user_id='". 
     $mysqli->real_escape_string($_SESSION['user_id'])."'"); 
    if (!$result) die();//This could be more instructive 
    $row=$result->fetch_array(MYSQLI_NUM); 
    $result->free(); 
    return $row[0];//The actual sum 
    } 
+0

就用这种方式,他写的家伙......如果有人改变了他们需要改变代码查询。如果您想使用关联的数组下载,则必须命名它。 (尽管你不建议的解决方案?!) – Rudu

+0

K,我可以找到你的编辑请求,有人在社区拒绝了(*耸肩*没有理由给出,那不是我)。如果有人改写了SQL重命名命名参数......你不得不改变你的* *代码太;) – Rudu

+0

好,我再次编辑它。“感谢您的编辑 此编辑将是可见的只有!你直到它被同行审查。“并且我正在删除我的评论.. –

0

您的查询不返回值本身,而是包含值的资源。你还是你应该尝试通过资源进行迭代,如:

$resource = mysql_query("SELECT SUM(price) FROM db.cart WHERE user_id='".mysql_real_escape_string($_SESSION['user_id'])."'") or die(); 
     if($resource){ 
      while($data = mysql_fetch_array($resource)){ 
       // iterating 
      } 
     }