如果行为空,如何不显示MySQL行

时间:2017-07-27 23:42:53

标签: php mysql

我是php的新手,试图解决这个问题,在问这里之前经过了很多文章,但没有更好的答案。我正在使用mysqli_fetch_array($result)

获取sql行

如果行为空,前端会显示一个空行,这会产生奇怪的外观。应该有一些方法不显示数据库中的空行。

我的代码

<?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>";
            }
        ?>

3 个答案:

答案 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 != ''