【问题标题】:PHP, MySQL statisticsPHP、MySQL 统计
【发布时间】:2014-10-10 07:48:09
【问题描述】:

我有一个带有统计表的 MySQL 数据库。我想在年历中每月输出数据。对于没有点击的月份,我想花费一个“空”的 DIV。有两个ID。

$query = mysqli_query($db,"SELECT `id`, MONTH(`date`) AS `month`, COUNT(*) AS `quant`
FROM `statistic` WHERE YEAR(`date`) = '2014' && `k_id` = '12345' group by `id`, `month`");

while($xyz = mysqli_fetch_object($query)) {
if($old != $xyz->id) {
if($old=='') {
    echo '<div class="statistic“>‘.“\n“;
}
else {
    echo '</div>'."\n";
    echo '<div class="statistic“>‘.“\n“;
}
$old = $xyz->id;
}
echo '<div class="'.$ausgabe->month.’“>’.$xyz-> quant.'</div>'."\n";
}

我的结果:

<div class="statistic">
<div class="6">11</div>
<div class="7">6</div>
<div class="8">20</div>
</div>
<div class="statistic">
<div class="7">1</div>
<div class="8">8</div>
</div>

我想要什么:

<div class="statistic">
<div class="1">0</div>
<div class="2">0</div>
<div class="3">0</div>
<div class="4">0</div>
<div class="5">0</div>
<div class="6">11</div>
<div class="7">6</div>
<div class="8">20</div>
<div class="9">0</div>
<div class="10">0</div>
<div class="11">0</div>
<div class="12">0</div>
</div>

<div class="statistic">
<div class="1">0</div>
<div class="2">0</div>
<div class="3">0</div>
<div class="4">0</div>
<div class="5">0</div>
<div class="6">0</div>
<div class="7">1</div>
<div class="8">8</div>
<div class="9">0</div>
<div class="10">0</div>
<div class="11">0</div>
<div class="12">0</div>
</div>

谢谢!

【问题讨论】:

    标签: php mysql while-loop statistics


    【解决方案1】:

    我会将您的代码更改为以下内容,因为您提前知道您希望在场的时间。

    $statArr = array();
    while($xyz = mysqli_fetch_object($query)) {
        $statArr[(int)$xyz->month] = $xyz->quant;
    }
    
    for ($i = 1; $i <= 12; $i++) {
        echo '<div class="' . $i . '">' . (isset($statArr[$i]) ? $statArr[$i] : 0) . '</div>'
    }
    

    一些笔记。首先,以数字开头的类不是有效的 CSS 类名。其次,如果你不熟悉 if-else 语句的简写,它被称为三元运算。如果$statArr 有索引,请使用它。否则输出零。

    【讨论】:

    • 笔记是我知道的,只在测试环境中使用。不幸的是,我还没有得到结果。如前所述,它可以出现多个 ID。必须为每个 ID 生成年视图。不幸的是,使用您的脚本,我得到了来自不同 ID 的点击...
    • 我不明白你在说什么。 “必须为每个 ID 生成年视图”,但 ID 来自哪里?
    猜你喜欢
    • 2011-03-31
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 2016-06-15
    • 2011-06-14
    • 2012-05-03
    • 2014-01-17
    相关资源
    最近更新 更多