PHP 购物车产品编号

标签 php mysql

因此,我正在尝试为我的 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/

相关文章:

javascript - jQuery 多次执行脚本

php - Jquery UI 日历显示 mysql 日期?

mysql - SQL 子查询问题。无法进一步细化查询结果

MYSQL InnoDB Cluster 连接字符串参数

mysql - 如果其他成功则执行SQL查询

php - 检索特定 ID 一次

php - mysql 查询没有给出正确的输出

php - 从数据库特定列为每个用户发送多封电子邮件

mysql - sql 检索 magento 中的所有订单和产品详细信息

php - 需要帮助从 uri 中提取 Spotify ID