PHP购物车会话问题

时间:2014-03-28 23:37:35

标签: array-push

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

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()并不像预期的那样工作。

1 个答案:

答案 0 :(得分:0)

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