根据我之前的问题here ,我可以使用内爆将关联数组转换为单个字符串。现在,从购物车 session ($_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
我认为我编写的内爆方法不起作用。我不知道我的代码有什么问题。有人可以再次帮助我吗?提前致谢
最佳答案
错误发生在错误的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')
最后但并非最不重要的 - mysql
扩展必须避免,因为它已经从 php 中删除了。
关于php - 从数据库获取记录值并将其内爆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41207194/