我是php的新手,试图解决这个问题,在问这里之前经过了很多文章,但没有更好的答案。我正在使用mysqli_fetch_array($result)
如果行为空,前端会显示一个空行,这会产生奇怪的外观。应该有一些方法不显示数据库中的空行。
我的代码
<?php
include_once("config.php");
date_default_timezone_set('Asia/Kolkata');
//$timestamp = time();
$day = "" . date("D");
$dayt= "t" . date("D");
$dayr= "r" . date("D");
$result = mysqli_query($mysqli, "SELECT * FROM Time_table WHERE regd='". $_SESSION['TextBox1'] ."' ORDER BY id DESC");
while($res = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td style='width: 30%'>".$res[$dayt]."</td>";
echo "<td style='width: 30%'>".$res[$day]."</td>";
echo "<td style='width: 40%'>".$res[$dayr]."</td>";
}
?>
答案 0 :(得分:2)
我建议您更改选择查询以排除空列的行。
例如:
$result = mysqli_query($mysqli, "SELECT * FROM Time_table WHERE regd='". $_SESSION['TextBox1'] ."' AND some_possibly_empty_column <> '' ORDER BY id DESC");
或者如果您的列允许NULL值,那么更好:
$result = mysqli_query($mysqli, "SELECT * FROM Time_table WHERE regd='". $_SESSION['TextBox1'] ."' AND some_possibly_empty_column IS NOT NULL ORDER BY id DESC");
答案 1 :(得分:0)
您需要根据不能为空的数据检查每一行。例如:
while($res = mysqli_fetch_array($result)) {
if ( !empty($res[$dayt]) ) {
echo "<tr>";
echo "<td style='width: 30%'>".$res[$dayt]."</td>";
echo "<td style='width: 30%'>".$res[$day]."</td>";
echo "<td style='width: 40%'>".$res[$dayr]."</td>";
}
}
请勿忘记关闭tr
代码
答案 2 :(得分:0)
您还可以在SQL查询的where-statement中检查空值:
SELECT * FROM table WHERE xxx != ''