好的,所以我几乎在试图在这里发现问题,因为有时这段代码完美无缺,有时候没有,所以这就是:
$allItems = array();
$allItemsQuery = mysqli_query($conn,"SELECT * FROM cart_items WHERE crt_id='".$row['crt_id']."' AND quantity>0");
while($itemsArray = mysqli_fetch_assoc($allItemsQuery)){
array_push($allItems,$itemsArray['item_id']);
}
$allItemsNames = array();
foreach($allItems as $key => $value){
$itemNames = mysqli_fetch_assoc(mysqli_query($conn,"SELECT * FROM items WHERE id='$value'"));
array_push($allItemsNames, $itemNames['item_name']);
}
$allItemsFinal = array_combine($allItems,$allItemsNames);
$itemsList = 'Items:<br>';
foreach($allItemsFinal as $key => $value){
$itemsList .='<a href="http://www.exampleurl.org/product.php?ID='.$key.'">'.$value.'</a><br><br>';
}
我们的想法是,它应该从数据库中获取用户在购物车中拥有的所有商品ID,并将其放入我已建立的阵列中,抓住所有项目名称根据其ID,并将其放入一个数组,然后将两个数组合并为一个键和值。然后我将数组中的数据输出到字符串中。
此代码有时会完美运行,然后突然没有。有人可以给我任何想法吗?我永远感激不尽。
答案 0 :(得分:0)
我认为你应该抛弃这些代码并使用类似的东西:
$items = array();
$itemsQuery = "SELECT i.item_name, i.item_id
FROM items i WHERE i.item_id
IN (SELECT ci.item_id
FROM cart_items
WHERE crt_id='".$row['crt_id']."'
AND quantity>0
)");
$allItemsQuery = mysqli_query($conn, $itemsQuery);
while ($row = mysqli_fetch_assoc($allItemsQuery))
$items[$row['item_id']] = $items[$row['item_name']];