如果表中没有数据,如何在php中显示消息

时间:2016-04-14 11:28:22

标签: php mysqli error-handling

我认为这是一个愚蠢的问题,但很遗憾我已经开始使用php了,实际上我想显示消息,如果我没有表中的数据,那我该怎么办呢。我的代码在这里先谢谢

<?php      
error_reporting(0);
include("connection.php");
session_start();
if(!($_SESSION['email']))
{
    echo "please login first to access this page";
    header("refresh:3;url=index.php");
    exit();
}
?>
<!DOCTYPE html>
<html>
<head>
    <style>
        body
        {
            margin: 0;
            padding: 0;
        }
        table
        {
            border-collapse: collapse;
            width: 100%;
            font-family: sans-serif;
            font-size: 15px;
        }
        th,td
        {
            padding: 5px;
            text-align: left;
        }
        tr:nth-child(even)
        {
            background: #edf0f5;
        }
        th
        {
            background: #00A800;
            color: white;
            padding: 5px;
            font-family: sans-serif;
        }
        a
        {
            text-decoration: none;
            color: #00A800;
        }
        a:hover
        {
            text-decoration: underline;
        }
    </style>
    <title>View all the data</title>
</head>
<body>
    <table>
        <tr>
            <th>Roll NO</th>
            <th>Student Name</th>
            <th>Father Name</th>
            <th>Class</th>
            <th>Class Section</th>
            <th>Phone number</th>
            <th>Email Address</th>
            <th>Address</th>
            <th>Edit</th>
            <th>View Fees</th>
            <th>Attendance</th>
        </tr>
        <?php
        $select="select *from student where class='1' AND section='B' ";
        $run=mysqli_query($con,$select);
        $i=0;
        while($row=mysqli_fetch_array($run))
        {
            $id=$row['id'];
            $s_name=$row['s_name'];
            $f_name=$row['f_name'];
            $class=$row['class'];
            $section=$row['section'];
            $phone=$row['phone'];
            $email=$row['email'];
            $address=$row['address'];
             $i++;
        ?>
        <tr>
            <td><?php echo $i;?></td>
            <td><?php echo $s_name;?></td>
            <td><?php echo $f_name;?></td>
            <td><?php echo $class;?></td>
            <td><?php echo $section;?></td>
            <td><?php echo $phone;?></td>
            <td><?php echo $email;?></td>
            <td><?php echo $address;?></td>
            <td><a href="edit.php?edit=<?php echo $id;?>" target="_blank">Edit</a></td>
            <td><a href="view_fees.php?view_fees=<?php  echo $id;?>" target="_blank">Fees</a></td>
            <td><a href="attendance.php" target="_blank">Attendance</a></td>
        </tr>
        <?php
        }
        ?>            
    </table>
</body>
</html>

请阅读我的代码并指导我如何显示我的消息再次感谢您

3 个答案:

答案 0 :(得分:4)

您可以使用mysqli_num_rows()检查结果中的行数

$select = "select *from student where class='1' AND section='B' ";
$run = mysqli_query($con, $select);
if (mysqli_num_rows($run > 0)) {// check if your query return result
    // your code
} else {
    echo "NO result found";
}

阅读http://php.net/manual/en/mysqli-result.num-rows.php

答案 1 :(得分:3)

您需要检查是否返回行,如果没有,则显示错误。

$i = 0;
while($row=mysqli_fetch_array($run)) {
 // Your code
 $i++;
}
if ($i <1) {
?>
<tr><td colspan="11">There are no records.</td></tr>
<?php
}

<强>解释

1)我们采用了变量$i,初始化为0

2)在while循环中,它会递增。

3)如果我们有记录,在while循环之后,我们会$i超过0

4)如果它仍然0小于1,则表示没有记录并显示错误消息。

答案 2 :(得分:1)

您可以使用mysqli_num_rows来计算返回的行数:

  

返回结果集中的行数。

由于mysqli_num_rows将返回0,如果没有结果,您可以使用!检查结果是否为false

$select="select *from student where class='1' AND section='B' ";
$run=mysqli_query($con, $select);
if (!mysqli_num_rows($run)) {
    echo "No result is found";
} else {
    // to do if there's result
}