根据我之前的问题here,我可以使用implode将关联数组转换为单个字符串。现在,从购物车会话( $ _ SESSION ['cart'] )我想得到图书的图像名称(这是一个关联数组)并将其转换为单个字符串。这是我的代码:
foreach ($_SESSION['cart'] as $key=> $value) {
$sql = mysql_query("SELECT * FROM product WHERE product_name='$key'"); //take image name from table product with book_name=$key
$images = array();
while ($product_image= mysql_fetch_assoc($sql)) {
$images[] = $product_image['book_image'];
}
echo implode(', ', $images);
}
我想从上面的代码中看到的是:
book1_image,book2_image,book3_image
但它又回到了这个:
book1_imagebook2_imagebook3_image
我认为我写的内爆方法不起作用。我不知道我的代码有什么问题。任何人都可以帮我一次吗?提前致谢
答案 0 :(得分:0)
错误位于std::bad_alloc
位置错误。
echo
您的一堆查询可以用以下查询替换:
// define images as empty array before you loop
$images = array();
foreach ($_SESSION['cart'] as $key=> $value) {
$sql = mysql_query("SELECT * FROM product WHERE product_name='$key'"); //take image name from table product with book_name=$key
while ($product_image= mysql_fetch_assoc($sql)) {
$images[] = $product_image['book_image'];
}
}
// echo after you check all items
echo implode(', ', $images);
最后但并非最不重要的是 - SELECT * FROM product WHERE product_name IN ('name1', 'name2', 'name3')
扩展程序必须避免,因为它已经从php中删除了。