因此,我正在尝试为我的 php 类创建一个简单的购物车。我停下来了,因为我注意到产品 ID 的工作方式不正确。现在,我有一个应该从数据库中提取信息的信息按钮,但它似乎一直在为我选择的每个产品提取相同的信息。我有 20 种产品,ProductID 列从 1 到 20,但它似乎几乎将每个产品都分配给了“1”。现在,我只想在按下信息按钮时调出信息,因为我确信解决这个问题将有助于解决其余问题。这是代码:
<?php
session_start();
require_once 'DBLogin.php';
echo "<form action='Catalogue.php' method='Post'>";
$sql = "SELECT * FROM ACME.Products";
$result = mysql_query($sql);
echo "<select name='Select_Product'>";
while ($row = mysql_fetch_array($result)) {
echo "Please select a product: <option value='" . $row['ProductID'] . "'>" . $row['Name'] . "</option>";
}
echo "</select>";
echo <<<HTML
<table>
<tr> <td>
<input id="button_Add" type="submit" value="Add" name="action"/>
</td> <td> <input id="button_Remove"
type="submit" value="Remove" name="action"/>
</td> <td> <input id="button_empty"
type="submit" value="Empty" name="action"/>
</td> <td> <input id="button_Info"
type="submit" value="Info" name="action"/>
</td> </tr>
</table>
</form>
HTML;
//code to attempt to pull the info
$product_id = $_POST['Select_Product'];
$action = $_POST['action'];
switch ($action) {
case "Add":
echo $_SESSION['cart'][$product_id]++;
break;
case "Remove":
$_SESSION['cart'][$product_id]--;
if($_SESSION['cart'][$product_id] == 0)
unset($_SESSION['cart'][$product_id]);
break;
case "Empty":
unset($_SESSION['cart']);
break;
case "Info":
$sql = "SELECT * FROM ACME.Products";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo "<table>";
echo "<tr><td>Name</td><td>Description</td ><td>Price</td><td>Image</td> </tr>";
echo "<td>" . $row['Name'] . "</td>";
echo "<td>". $row['Description'] . "</td>";
echo "<td>". $row['Price'] . "</td>";
echo "<td align=\"center\"><img alt=\"\" src=\"productImages/". $product_id . ".jpg\ width=\"120\" height=\"120\"/></td></tr>";
echo "</table>";
break;
}
这是该站点的链接,因此您也可以看到发生了什么: http://ec2-52-24-105-81.us-west-2.compute.amazonaws.com/Catalogue.php
如有任何帮助,我们将不胜感激!
最佳答案
你忘记了 where
子句
case "Info":
$sql = "SELECT * FROM ACME.Products Where id = $product_id Limit 1";
关于PHP 购物车产品编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31849686/