致命错误未捕获错误调用null中的成员函数fetch_assoc()

时间:2018-02-11 07:56:39

标签: php

Image for reference我不知道我错了。有人可以帮我这个吗?我现在觉得很蠢

 function total_price() {
        $total = 0;
        global $con;
        $ip = getIp();
        $select_price = $con->query("SELECT * from shoppingcart WHERE IP_address='$ip'");
        while($row = $select_price->fetch_assoc()) {
            $pro_id = $row['Product_id'];
            $quan = $row['Quantity'];
            $query = $con->query("SELECT * FROM products WHERE prod_id='$pro_id'");
            while($row2 = $query->fetch_assoc()) {
                $row2['product_price'] *= $quan;
                $productprice = array($row2['product_price']);
                $values = array_sum($productprice);
                $total += $values;
            }
        }
        echo "₱: ".$total;
    }

2 个答案:

答案 0 :(得分:0)

我认为您的$ con>查询(...)失败,因此您$select_priceFALSE而不是具有某些成员函数的对象。

查看$ mysqli :: query

的文档

http://php.net/manual/en/mysqli.query.php

如果您想获取sql错误,请打印$con->error的结果。

例如:

     $select_price = $con->query("SELECT * from shoppingcart WHERE IP_address='$ip'");
    if($select_price == FALSE) {
        echo "SQL-Error:".$con->error
        exit;
    }
            while($row = $select_price->fetch_assoc()) {
...

答案 1 :(得分:0)

如果fetch_assoc失败,则结果集存在问题。

问题在于:

$查询

$ select_price

不是有效的结果集。

原因可能是数据库的查询失败。

您可以通过执行以下操作来检查:

的print_r($ select_price); 的print_r($查询);

应输出:资源ID #XX - >如果没有,请再次检查您的查询SQL。

希望这会有所帮助