我们的组织提供早晨&下午几个不同级别的滑雪之旅。并非所有巡回级别都在每个会话中发生,并且有时可能同时在给定级别上进行多次巡回。我想按日期,旅游类型和时间显示客人号码。我没有问题检索数字,我的问题是显示。在没有数据的情况下,我无法弄清楚如何使其显示空白单元格,或者显示空白单元格的单元格。
图像显示了我正在获得的样本,我修改了一下以显示我想要的内容。
希望这将澄清我的问题。 3月28日上午和下午有五种类型的游客。 3月29日,没有人参加BlGrn Tour,因此该日期的数据库中不存在其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>';
导致每个单元格与数据之间出现空单元格。
我认为我需要的是
if($ row [amID] == 1此日期不存在 ){echo'';
我发现了这个
function is_blank($value) {
return empty($value) && !is_numeric($value);
}
关于“如何实现is_empty”但我不知道它是我需要的还是如何使用它。
答案 0 :(得分:0)
如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>'
*/
}
}