当前位置: 首页 > 知识库问答 >
问题:

增加价格和股票后,如何在不重复产品的情况下取数

赵骏奇
2023-03-14

我有一个问题在添加价格,大小和库存。如何添加价格、库存和大小而不重复?

下面是我的数据库结构:

TBLProduct

这是我将价格、股票和价格相加后的结果。你可以看到有两个‘耐克勒布朗15鬼’。

查询

SELECT * FROM tblproduct LEFT JOIN tblproduct_extension ON tblproduct_extension.product_id = tblproduct.product_id;

Ajax

//Show modal for adding size, price and stocks
function add_product_extension() {
    $('#product_add_extension').click(function(e){
        var product_id = $('#product_id').val();
        var product_price = $('#product_price').val();
        var product_stocks = $('#product_stocks').val();
        var product_size = $('#product_size').val();
        $.ajax({
            type: 'POST',
            url: '../admin/class.php',
            data: {product_id:product_id,product_price:product_price,product_stocks:product_stocks,product_size:product_size},
            success:function(data) {
                $('#addSize').modal('hide');
            }
        });
    });
}
    //Add size, price, stocks
    if(isset($_POST['product_id'])) {
        $product_price = $_POST['product_price'];
        $product_stocks = $_POST['product_stocks'];
        $product_size = $_POST['product_size'];
        $product_id = $_POST['product_id'];

        $insert_query = "INSERT INTO tblproduct_extension (product_stocks, product_price, product_size, product_id)VALUES('$product_stocks', '$product_price', '$product_size', '$product_id')";
        $query = mysqli_query($db_conn, $insert_query);
    }

显示产品的代码

    //Get Products by ID
    function get_products() {
        GLOBAL $db_conn;
        $id = $_GET['id'];
        $search_query= "SELECT * FROM tblproduct LEFT JOIN tblproduct_extension ON tblproduct_extension.product_id = tblproduct.product_id WHERE tblproduct.segment_id='$id'";
        $query = mysqli_query($db_conn, $search_query);

        while ($row = mysqli_fetch_array($query)) {
            ?>
                <div class="products">
                    <a href="details.php?view_product=<?=$row['product_id']?>&id=<?=$row['segment_id']?>"><img class="img_product" src="../admin/<?=$row['product_image']?>" alt="<?=$row['product_name']?>"></a>
                    <?php if($row['product_stocks'] == 0) {?>
                        <span class="stock-label">SOLD OUT</span>
                    <?php } ?>
                    <h4><?=$row['product_name']?></h4>
                    <h3>&#8369;<?=number_format($row['product_price'], 2)?></h3>
                </div>
            <?php
        }
        return $row;
    }

共有1个答案

滕胜涝
2023-03-14

由于可以有多个product_size,因此也可以使用产品名称显示此信息

...
<h4><?=$row['product_name']?> - Size <?=$row['product_size']?></h4>
...

您可以执行稍微复杂一点查询来实现您想要的(函数get_products)。

首先,仅选择唯一的产品/扩展项对,使用最小的扩展项键。在此基础上,进行第二次选择谁提取要显示的数据

带分组依据

-- 2. After you select your data with unique id get from sub query
SELECT      p.*, pe.*
FROM        tblproduct p
JOIN        (
            -- 1. First select your product_id and smallest product_extension_id
            SELECT      p.product_id, 
                        MIN(pe.product_extension_id) as product_extension_id
            FROM        tblproduct p
            LEFT JOIN   tblproduct_extension pe
            ON          pe.product_id = p.product_id 
            WHERE       p.segment_id='$id'
            GROUP BY    p.product_id
) product_unique
JOIN        tblproduct_extension pe
ON          pe.product_extension_id = product_unique.product_extension_id
WHERE       p.product_id = product_unique.product_id            

带有不同的

-- 2. After you select your data with unique id get from sub query
SELECT      p.*, pe.*
FROM        tblproduct p
JOIN        (
            -- 1. First select your product_id and smallest product_extension_id
            SELECT      DISTINCT
                        p.product_id, 
                        MIN(pe.product_extension_id) as product_extension_id
            FROM        tblproduct p
            LEFT JOIN   tblproduct_extension pe
            ON          pe.product_id = p.product_id 
            WHERE       p.segment_id='$id'
) product_unique
JOIN        tblproduct_extension pe
ON          pe.product_extension_id = product_unique.product_extension_id
WHERE       p.product_id = product_unique.product_id            
 类似资料:
  • 在这个 Matplotlib 教程中,我们将展示如何跟踪股票的最后价格的示例,通过将其注解到轴域的右侧,就像许多图表应用程序会做的那样。 虽然人们喜欢在他们的实时图表中看到历史价格,他们也想看到最新的价格。 大多数应用程序做的是,在价格的y轴高度处注释最后价格,然后突出显示它,并在价格变化时,在框中将其略微移动。 使用我们最近学习的注解教程,我们可以添加一个bbox。 我们的核心代码是: bbox

  • 问题内容: 我需要将每个键的值相乘,然后将所有值加在一起以打印一个数字。我知道这可能超级简单,但我被卡住了 在我看来,我可以通过以下方式解决此问题: 但是那样的事情是行不通的:) 问题答案: 如果需要个人,可以使用dict理解: 或直接求和:

  • 我正在以编程方式创建属性变体(变量产品)。我见过的所有东西都很容易做到这一点,但是值就是不显示出来。下面是我的代码: null 我已经尝试了所有的方法:将上面的值设置为术语slugs的数组,ID的数组,ID或slug/VALUE的简单字符串。什么都不管用。我还跟踪了这些stackoverflow问题: WooCommerce:向产品属性添加值br>创建WooCommerce产品变体添加空属性值br

  • 问题内容: 我对使用 Python 编程很 陌生 。 我想制作一个将从Google Finance 获取股票价格* 的应用程序。一个示例是CSCO (思科系统) 。然后,我将使用该数据 在库存达到一定值时向用户发出警告 。它还需要 每30秒刷新一次 。 __ *** 问题是我不知道如何获取数据! 谁有想法? 问题答案: 该模块由CoreyGoldberg提供。 程序: 用法示例: 更新 :更改了正

  • 问题内容: 我想扩大 行高 并显示其中的内容。我在想要的视图中显示我的内容,当我点击一个单元格时,它应该像下图所示那样展开,但无需重新加载UITableview。 到目前为止,我一直在尝试。 1)我尝试在内部扩大视图,但是没有用 2)我尝试添加rowAtIndex变得越来越复杂 3)我尝试更改更改行高并在索引处滚动,效果很好,但我不想那样做。(不好的事情,我必须重新加载表视图) 但是我得到了很多答

  • 如何通过代码为woocommerce属性添加值?我已经创建了一个名为“Dispatch time”(分类法:pa_Dispatch)的属性,现在我想为特定产品的Dispatch属性添加值。 如何通过编程实现这一点?