我有一个MySQL查询ID数据的数组,我正在尝试添加到已创建的会话数组中。出于某种原因,我的代码是在会话数组中添加一个数组,而不仅仅是在会话中添加ID号。造成这种情况的原因是什么?
这是我的PHP ...
//Find members of this group and create an array to add to cart
$deletedgroupmembersquery = "SELECT * FROM groupmember WHERE group_id='$groupid'";
$deletedgroupmembers = mysql_query($deletedgroupmembersquery) or die('SQL Error :: '.mysql_error());
if (mysql_num_rows($deletedgroupmembers) > 0) {
$groupmembers = mysql_num_rows($deletedgroupmembers);
$cart = array();
while(($deletedmembersrow = mysql_fetch_assoc($deletedgroupmembers))) {
$cart[] = $deletedmembersrow['contact_id'];
}
//Add the array to the cart session
if (isset($cart)) {
$_SESSION['cart'] = array();
array_push($_SESSION[cart],$cart);
} else {
}
以下代码正在创建的会话..
Array ( [cart] => Array ( [0] => Array ( [0] => 1362 [1] => 1371 [2] => 2241 ) )
感谢您的帮助。
答案 0 :(得分:1)
$cart
已经是一个数组。当你这样做时:
array_push($_SESSION[cart],$cart);
你将它作为$_SESSION['cart']
的子数组推送。我想你只想要:
$_SESSION['cart'] = $cart;
答案 1 :(得分:0)
在将$ cart推入$ _SESSION [cart]之前,你将$ cart定义为数组...所以你将数组推入数组。尝试这样的事情:
if (!empty($cart)) {
$_SESSION['cart'] = array();
foreach ($cart AS $item) {
array_push($_SESSION['cart'], $item);
}
}
您也可以将array_push放在while()中,并在while()之前粘贴$ _SESSION ['cart'] = array(),它将实现相同的目的。