从数据库中检索购物车项目


Retrieve shopping cart items from database

我想为我的网站实现一个购物车。我的页面循环遍历数据库中的产品,并通过"添加"按钮将它们显示在页面上。只有登录后才能添加项目

产品表

| ID | Name | Price | Quantity | description | image_name | 

一旦添加了商品,它就会将其存储在购物车表中。'CartProduct int'与我的产品表中的'ID'相同。

购物车表

| CartID | CartProduct | ProductCount | UniqueID | Username | Date

如果您在同一产品上单击Add, ProductCount将增加。

如果TestUser添加CartProduct 1 &2和2再一次。
我真的不确定如何显示用户名'TestUser'的所有产品,我还需要ProductCount * Price。

目前,我正在尝试遍历登录用户的每个CartProduct,然后从产品表中选择ID,其中ID = CartProduct(因为它们是相同的)。然后我可以获取该产品的价格和详细信息。

此刻我从购物车中选择用户名=登录的用户名。为了能看到结果,我把它显示出来。

$sql = "SELECT cartProduct FROM cart WHERE username ='" . $name . "'";
                    $result = mysql_query($sql);
                    $c = 0;
                    $n = 2; // Each Nth iteration would be a new table row
                    while ($db_field = mysql_fetch_assoc($result)) {
                        $res = mysql_query($sql);
                        $row = mysql_fetch_assoc($res);
                        $productNo = $row['cartProduct'];
                        if ($c % $n == 0 && $c != 0) { // If $c is divisible by $n...
                            echo '<div class="row" ></div>';
                        }
                        $c++;
                        echo "<br>Count: " .$c;
                        ?>
                        <h2> <?php echo "Product No: " . $productNo ?> </a></h2>
                        <?php

我向购物车中添加了3件商品。CartProduct 1,2,2:-对于输出,我一直得到:

产品编号:1
产品编号:1

我应该先看产品1然后再看产品2?

我是否使这个比它应该更复杂,我的表是正确的吗?
有更简单的方法吗?

非常感谢您的回复!

首先,在Cart Table中将Username更改为UserId。下一步是修改"JOIN products"处的sql查询,以连接产品表并轻松获取产品价格。

但在一般情况下,使用PDO驱动程序,以获得更多的安全和清晰的查询和PHP代码。阅读数据库(RDBM)中的关系