簡體   English   中英

PHP錯誤的foreach代碼

[英]PHP wrong foreach code

我做錯了什么,foreach 代碼寫在下面,但它似乎不起作用:

$custom = "8-1,1-1,4-1,";

foreach ($custom as $each_item) {
    $id = $each_item['id'];
    $quantity = $each_item['quantity'];
    $sql3 = mysql_query("SELECT * FROM products WHERE id='$id' LIMIT 1");
    while ($row = mysql_fetch_array($sql3)) {
        $product_name = $row["product_name"];
        $price = $row["price"];
    } }

我必須在此 foreach 代碼中更改什么? 謝謝

foreach旨在用於迭代array但您將它與string一起使用。

所以它不適合你。

第一行,custom is not a variable (copy and paste error)

$custom

然后您使用 can 數組運算符拆分字符串,您需要先使用以下方法拆分該字符串:

$custompieces = explode(",", $custom);

然后,您已將 $custom 聲明為 $each_item,但您似乎正在嘗試訪問不存在的子數組。 $each_item[id] 和 $each_item[quantity] 沒有在任何地方定義。 我猜您正在嘗試將 8-1 拆分為 id 數量,在這種情況下,您需要實際定義那些才能使用它們。

$pieces = explode("-", $each_item);
$id = $pieces[0];
$quantity = $pieces[1];

所以你的最終代碼需要是:

$custom = "8-1,1-1,4-1,";
$custompieces = explode(",", $custom);
foreach ($custompieces as $each_item) {
$pieces = explode("-", $each_item);
$id = $pieces[0];
$quantity = $pieces[1];
$sql3 = mysql_query("SELECT * FROM products WHERE id='$id' LIMIT 1");
while ($row = mysql_fetch_array($sql3)) {
    $product_name = $row["product_name"];
    $price = $row["price"];
} }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM