我的购物车还有另一个问题。每次我运行这段代码:
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() 没有按预期工作。
您可以在分配数组之前检查数组是否为空,这样它只会在第一次初始化。