Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to show the message in php if there is no data in table [duplicate]

I have a report, which has a few prompts, and based on the prompt selection, sometimes there might be no records in the report. In such cases, I want to show a message NO RECORDS FOUND on the Cover Page.

Can anyone tell me how I do this?

<?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>
like image 458
Fawad Shah Avatar asked Apr 14 '16 11:04

Fawad Shah


3 Answers

You can use mysqli_num_rows() to check the number of rows in a result

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

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

like image 119
Saty Avatar answered Oct 01 '22 08:10

Saty


You need to check if rows are returned, if not, show error.

$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
}

Explanation:

1) We have taken a variable $i, initialized to 0

2) In while loop, it is incremented.

3) If we have records, after while loop, we will get $i more than 0.

4) If it is still 0 that is less than 1, it means there are no records and show the error message.

like image 40
Pupil Avatar answered Oct 01 '22 08:10

Pupil


You can use mysqli_num_rows to count the number of rows returned:

Returns the number of rows in the result set.

Since, mysqli_num_rows will return 0 if there's no result, you can use ! to check if the result is 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
}
like image 31
Panda Avatar answered Oct 01 '22 10:10

Panda