Reputation: 125
currently I'm working on a site uptime search engine however I'm having a silly issue. I want to output more than one mysql row in a table however my code below causes a separate table to be created for each row thats found. Thank you in advance for your assistance
$searchTerm = trim($_GET['searchterm']);
//check whether the name parsed is empty
if($searchTerm == "")
{
echo "Please enter something to search for...";
exit();
}
//database connection info
$host = "localhost"; //server
$db = "DB NAME"; //database name
$user = "USER"; //dabases user name
$pwd = "PASSWORD"; //password
$link = mysqli_connect($host, $user, $pwd, $db);
$query = "SELECT * FROM sites WHERE name OR des LIKE '%$searchTerm%'";
$results = mysqli_query($link, $query);
if(mysqli_num_rows($results) >= 1)
{
while($row = mysqli_fetch_array($results))
{
echo '<table class="table table-striped table-bordered table-hover">';
echo"<TR><TD>Name</TD><TD>Description:</TD><TD>Status</TD></TR>";
echo "<tr><td>";
echo $row['name'];
echo "</td><td>";
echo $row['des'];
echo "</td><td>";
echo $row['status'];
echo "</TD></tr>";
echo "</table>";
}
}
else
echo "There was no matching record for the name " . $searchTerm;
?>
Upvotes: 4
Views: 17717
Reputation: 380
First and last line of code shoud be out of the loop. The code should be like this:
echo '<table class="table table-striped table-bordered table-hover">';
while($row = mysqli_fetch_array($results))
{
echo"<TR><TD>Name</TD><TD>Description:</TD><TD>Status</TD></TR>";
echo "<tr><td>";
echo $row['name'];
echo "</td><td>";
echo $row['des'];
echo "</td><td>";
echo $row['status'];
echo "</TD></tr>";
}
echo "</table>";
Upvotes: -1
Reputation: 5105
Replace the while inside the if with this:
echo '<table class="table table-striped table-bordered table-hover">';
echo "<tr><th>Name</th><th>Description:</th><th>Status</th></tr>";
while($row = mysqli_fetch_array($results))
{
echo "<tr><td>";
echo $row['name'];
echo "</td><td>";
echo $row['des'];
echo "</td><td>";
echo $row['status'];
echo "</td></tr>";
}
echo "</table>";
Upvotes: 8