わかりましたので、現在ショップを作成しています。ショッピング カートを格納するために、$basketItems、$basketWeights、および $basketQuantities の配列を使用しています。各インデックスは、バスケット内のアイテムに関連付けられます。
私のコードは、(私が持っている配列に従って) バスケット内の各アイテムをループし、データベースから関連情報を取得することによって機能します。
コードは、データベースから取得する最初の行ではうまく機能しますが、2 番目の項目に到達するとすぐに失敗しますが、その理由はわかりません。
この問題は、$weights または $prices 配列から正しいインデックスで必要な値を取得できない場合に発生するようです。配列 $weights が正しく形成されているかどうかを確認するために、コードで気付くでしょう。私はそれをエコーし、取得したいインデックスもエコーしました。何もエコーしません (私が知る限り!)
コードは次のとおりです。
<?
/*
$basketItems
$basketWeights
$basketProducts
are arrays, each value stores the index of the item relating to the product in the database */
//show basket, go through all the basket items, the retrieves relevant information from the database
for($index = 0; $index < sizeof($basketItems); $index++)
{
//get product at this index
$getProduct = mysql_query("SELECT * from shop_products where prid='".$basketItems[$index]."' limit 1") or die(mysql_error());
$product = mysql_fetch_array($getProduct);
//weights is an array for each product ie 100, 200, 500
$weights = explode(",", $product['prweights']);
$weightIndex = $basketWeights[$index];
$prices = explode(",", $product['prprices']);
?> <tr>
<td><b><? print_r(array_values($weights)); ?></b></td>
</tr><tr>
<td><? echo($product['prtitle']); ?></td>
<td><? echo ("$weightIndex/$weights[$weightIndex]"); ?>g</td>
<td><? echo($basketQuantities[$index]); ?></td>
<td><? echo $prices[$weightIndex]; ?></td>
<td><? echo ($prices[$weightIndex] * $basketQuantities[$index]); ?></td>
<td> </td>
</tr>
<?
}
?>
そして結果はここで見ることができます: http://www.jamesmoorhouse.co.uk/images/shop.png
スクリーンショットからわかるように、各製品の上に表示されている配列からの結果をエコーする必要がある場所で何もエコーしません。
2 列目のテストの形式は、arrayIndex/arrayValueAtIndex g です。