我们的组织提供不同级别的早晨和下午滑雪之旅。并非所有巡回级别都发生在每个会话中,有时在同一时间同一级别可能会有多个巡回。我想按日期,游览类型和时间显示游客人数。检索数字没有问题,显示是我的问题。在没有数据的地方,我无法弄清楚如何显示空白的单元格,或者显示为0的单元格。
该图像显示了我所得到的样本,我对其进行了一些修改以显示我想要的。
希望这可以澄清我的问题。 3月28日上午和下午,所有5种类型的旅游都有客人参加。 3月29日,没有人参加BlGrn巡回赛,因此该日期的数据库中的amID值2不存在(请参见下文),Grn巡回赛的pmID值1也不会在当天下午出现,并且所有包含数据的单元格都没有向左移动。
memberID amID pmID date guestsAM guestsPM statsID
191 5 5 28/03/2016 2 1 17322
192 4 3 28/03/2016 4 4 17323
52 0 1 28/03/2016 0 2 17324
408 5 4 28/03/2016 2 7 17325
370 0 2 28/03/2016 0 2 17326
624 3 3 28/03/2016 3 5 17327
480 1 2 28/03/2016 3 5 17329
571 4 0 28/03/2016 3 0 17330
427 3 0 28/03/2016 2 0 17331
528 2 0 28/03/2016 3 0 17332
13 4 2 29/03/2016 3 4 17333
179 5 0 29/03/2016 3 0 17334
147 1 0 29/03/2016 3 0 17335
571 0 4 29/03/2016 0 2 17336
426 0 3 29/03/2016 0 2 17338
100 0 3 29/03/2016 0 3 17339
165 3 0 29/03/2016 5 0 17340
480 5 0 29/03/2016 1 0 17341
427 1 5 29/03/2016 2 4 17342
613 3 0 29/03/2016 4 0 17343
这是检索早晨数据的代码。如果同时存在多个给定类型的游览,则此代码将成功为这些游览加总访客人数。
$sql = "SELECT *, SUM(guestsAM) as guestsam FROM stats GROUP BY date, amID";
$mar_am_tour = mysqli_query($dbc,$sql) or die(mysqli_error());
这是我尝试显示一种巡回类型的数据的代码的一种变体。如果在该日期出现amID,则它就像一个超级按钮。如果不是,它只是将下一个单元格中的内容移动到空白处。 (参见图片)
while($row = mysqli_fetch_array($mar_am_tour)) {
if ($row[date] == '2016-03-29') {
if ($row[amID] == 1) {
echo '<td class="members">' . $row[guestsam] . '</td>';
} else {
if ($row[amID] == '') {
echo '<td class="members"></td>';
}
}
}
我还尝试在'else'语句中用$ row [guestsam] == 0和$ row [guestsam] ==''替换Srow [amID],并反转if语句的顺序。将“ else”之后的if语句替换为
echo '<td class="members"></td>';
导致每个单元格之间有数据的空单元格。
我认为我需要的是一些类似的东西
如果($ row [amID] == 1在这个日期不存在){echo ;;
我找到了这个
function is_blank($value) {
return empty($value) && !is_numeric($value);
}
关于“如何实现is_empty”,但我不知道这是否是我需要的以及如何使用它。
最佳答案
如RST所述,当单元需要为空时,检查$ row [amID]的值。另外,您的代码有一些小错误
while($row = mysqli_fetch_array($mar_am_tour)) {
if ($row['date'] == '2016-03-29') {
if ($row['amID'] == 1) {
echo '<td class="members">' . $row['guestsam'] . '</td>';
} else {
if (!empty($row['amID'])) {
echo '<td class="members"></td>';
}
/*what if $row['amID'] != '' .
*Either put an else block here or remove the if block and just
*echo '<td class="members"></td>'
*/
}
}