【问题标题】:MySQL output in PHP tablePHP表中的MySQL输出
【发布时间】:2022-02-02 03:05:34
【问题描述】:

我尝试从 MySQL 中获取数据并将其显示在 PHP 表中,但 sum_order 仅显示在一行中,并且所有其他数据都很好。我不知道我哪里出错了。

表结构

做桌子

barcode amount date user
R-001 10 2022-01-03 10:41:24 38

brikett_order 表

barcode amount date costumer state
R-001 10 2022-01-03 10:41:24 corp zárt

我的代码:

<div class="col-sm">
            <h5 class="mt-3">Havi Gyártás</h5>
            <table class="table">
                <thead>
                    <tr>
                    <th scope="col">Hónap</th>
                    <th scope="col">Munkanapok</th>
                    <th scope="col">Gyártás</th>
                    <th scope="col">Eladás</th>
                    </tr>
                </thead>
                <tbody>
                    <?php
                    $sql_list = 
                    "SELECT MONTH(date) AS month,   
                    COUNT(DISTINCT DATE(date)) AS work_days, 
                    COUNT(*) AS sum_number
                    FROM be 
                    WHERE barcode='R-001'
                    GROUP BY month";
                    $result_list = mysqli_query($conn, $sql_list);
                    while($row = mysqli_fetch_assoc($result_list)) {  
                        ?>
                    <tr>
                    <th scope="row"><?=$row['month']?></th>
                    <td><?=$row['work_days']?></td>
                    <td><?=$row['sum_number']?>&nbsp;db</td>
                    <?php
                    }
                    ?>
                    <?php
                    $sql_list = 
                    "SELECT MONTH(date) AS month,   
                    COUNT(DISTINCT DATE(date)) AS work_days, 
                    SUM(amount) AS sum_order
                    FROM brikett_order 
                    WHERE barcode='R-001' AND state='zárt'
                    GROUP BY month";
                    $result_list = mysqli_query($conn, $sql_list);
                    while($row = mysqli_fetch_assoc($result_list)) {  
                        ?>
                    <td><?=$row['sum_order']?>&nbsp;db</td>
                    <?php
                    }
                    ?>
                </tr>
                </tbody>
            </table>
        </div>

输出表是这样的:

month work_days sum_number sum_order
1 29 338
2 10 150 233 100

我在寻找什么:

month work_days sum_number sum_order
1 29 338 233
2 10 150 100

【问题讨论】:

    标签: php html mysql


    【解决方案1】:

    没有表结构很难预测表链接,但您可以使用 JOIN 或 LEFT JOIN 实现所有查询

    SELECT MONTH(be.date) AS month,
    COUNT(DISTINCT DATE(be.date)) AS work_days,
    COUNT(be.date) AS sum_number,
    SUM(bo.amount) AS sum_order 
    FROM be
    LEFT JOIN brikett_order bo on bo.state='zárt' and bo.barcode =  be.barcode and bo.date = be.date
    WHERE be.barcode='R-001'
    GROUP BY month
    

    然后一次创建表行:

     <tr>
       <th scope="row"><?=$row['month']?></th>
       <td><?=$row['work_days']?></td>
       <td><?=$row['sum_number']?>&nbsp;db</td>
       <td><?=$row['sum_order']?>&nbsp;db</td>
     </tr>
    

    【讨论】:

    • 谢谢!它看起来不错,但只有 db 的总和顺序没有数据。我已将它添加到我的帖子表结构中
    • 您好!我在 MySQL 中检查了它,它说“未选择数据库”
    • 您应该选择您的数据库来运行查询。在脚本前写上“USE your_db_name”。
    • 在哪里添加 USE?
    • 您写道,您已在 MySQL 中对其进行了检查。你的 MySQL 检查器是什么?在运行任何脚本之前,您应该选择应该运行此脚本的数据库。如果您正在运行 MySQL Workbench,请尝试双击您的数据库使其变为粗体。然后系统就会知道应该在“哪里”运行 sciprt。
    猜你喜欢
    • 1970-01-01
    • 2015-07-15
    • 2013-07-31
    • 1970-01-01
    • 2022-11-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    相关资源
    最近更新 更多