PHP 购物车会话问题

问题描述 投票:0回答:1

我的购物车还有另一个问题。每次我运行这段代码:

if(isset($_GET["atc"]))
{
    extract($_GET);
    $link = mysqli_connect("localhost", "root", "*******", "souljaz");
    $sql = "SELECT * FROM products WHERE id='{$pid}'";
    if($result = mysqli_query($link, $sql))
    {
        while($row = mysqli_fetch_assoc($result))
        {
            array_push($_SESSION["prod_names"], $row["name"]);
        }
    }
}

我收到此错误消息:

警告:array_push() 期望参数 1 为数组,第 20 行 C:\Aapche2.2\htdocs\products.php 中给出的 null

所以我将代码更改为:

    $_SESSION["prod_names"] = array();

if(isset($_GET["atc"]))
{
    extract($_GET);
    $link = mysqli_connect("localhost", "root", "*******", "souljaz");
    $sql = "SELECT * FROM products WHERE id='{$pid}'";
    if($result = mysqli_query($link, $sql))
    {
        while($row = mysqli_fetch_assoc($result))
        {
            array_push($_SESSION["prod_names"], $row["name"]);
        }
    }
}

然后我得到意想不到的结果,因为每次脚本运行 $_SESSION["prod_names"] = array();已重置。所以 array_push() 没有按预期工作。

php array-push
1个回答
0
投票

您可以在分配数组之前检查数组是否为空,这样它只会在第一次初始化。

© www.soinside.com 2019 - 2024. All rights reserved.