仅当数据填入数据库时​​才能使数据显示在页面上

时间:2015-06-16 14:51:07

标签: php mysql database

我创建了一个自定义结帐/购物车系统。我遇到了一个问题。我的一些产品会有不同的颜色或尺寸选择。截至目前,我只创建了一个名为产品的数据库表,其中包含我的所有信息,如产品名称,ID,价格,商品详情,描述等。我在一个页面上显示所有产品,然后如果您点击产品链接我抓住该ID并显示产品信息。

我应该在产品数据库中添加颜色和大小选项还是创建新的数据库表?

那么,如果该产品有不同的颜色或尺寸,我该如何才能显示这些选项?

我正在将产品添加到我的购物车中

<div class="addcartbox">
    <div class="productitemwrapper">
        Price: <span class="addtocartboxtotal"><?php echo "$" . $products[$product_id]['price']; ?></span>
        <div class="productdetailquantity"><?php echo"<form action='./itemsadded.php?view_product=$product_id' method='POST'>"?>
            <select class="productquantity" name='quantity'>
                <option value='1'>1</option>
                <option value='2'>2</option>
                <option value='3'>3</option>
                <option value='4'>4</option>
                <option value='5'>5</option>
                <option value='6'>6</option>
                <option value='7'>7</option>
                <option value='8'>8</option>
                <option value='9'>9</option>
                <option value='10'>10</option>
            </select>
        </div><br><br>

        //I want to add the color and size options here
        <div class="productdetailaddbutton">
        <?php 
            echo "<input type='hidden' name='product_id' value='$product_id' />
            <input type='submit' class='addtocart' name='add_to_cart' value='Add to cart' />";  
        ?>
        <br>
        <?php
            // Add Product to Cart
            if(isset($_POST['add_to_cart'])) {
                $product_id = $_POST['product_id'];

                // If item is already in cart, tell user
                if(isset($_SESSION['shopping_cart'][$product_id])) {
                    echo "Item already in cart!<br />";
                }
                // Otherwise add to cart
                else {
                    $_SESSION['shopping_cart'][$product_id]['product_id'] = $_POST['product_id'];
                    $_SESSION['shopping_cart'][$product_id]['quantity'] = $_POST['quantity'];
                    echo $message = "Added to cart!";
                }
            }
        ?>
        </form>
        </div>
    </div>
</div>

我想在我在代码中评论的位置添加颜色和大小选项。我想在选项值中回显db中的信息。所以这意味着我必须让每个颜色或大小在数据库表中的不同行正确吗?

我不会有很多产品,所以这不需要在很大程度上缩放。我或多或少需要这个在我设置的系统中工作,所以我可以继续使用我创建的循环显示我的产品,并且只显示这些字段,如果产品有不同的选项。

更新:

我的基础是我如何通过foreach循环显示我的所有产品。我不确定我是否接近......

<?php
//connection to db
$con = mysqli_connect("localhost", "root", "", "bfb"); 

//Check for errors  
if (mysqli_connect_errno()) {
    printf ("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

//Fetch products
    $products = array();
    $colors = mysqli_query($con,"SELECT * FROM colors");
    while($row = mysqli_fetch_array($colors)) {
        $products[$row['product_id']] = $row;
    }

// Loop to display all products
    foreach($colors as $id => $color) { ?>
<select name='colors'>
                <option value='1'><?php echo $color; ?></option>
</select>
<?php } ?>

0 个答案:

没有答案