I have a SQL table named res having some rows and columns. For example:
Name Class Sub1 Sub2 Sub3 sub4
s1 2 10 12 45 15
s2 2 50 12 14 60
s3 2 10 12 40 15
s4 2 20 12 14 15
s5 2 10 12 11 15
............................
............................
s500 2 11 12 13 16
a1 5 05 10 12 14
a2 5 45 10 16 14
a3 5 50 11 12 15
a4 5 45 10 12 14
............................
............................
a900 5 30 15 14 20
If someone enter 5 in class.php form then the result should be displayed in automatically generated html/PHP table in descending order of the name. For example:
Name Class Sub1 Sub2 Sub3 Sub4
a2 5 45 10 16 14
a3 5 50 11 12 15
a4 5 45 10 12 14
a5 5 45 10 16 14
a6 5 50 11 12 15
a7 5 45 10 12 14
............................
............................
My class.php code is
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
</head>
<table class="table table-bordered" >
<?php
$servername = "localhost";
$username = "adsdt";
$password = "ssfdfsg";
$dbname = "absdt";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$Class = mysqli_real_escape_string($conn, $_POST['Class']);
$sql = "SELECT * from res
WHERE class = '$class'";
$result = $conn->query($sql);
$columns = array();
$resultset = array();
while ($row = mysql_fetch_assoc($result)) {
if (empty($columns)) {
$columns = array_keys($row);
}
$resultset[] = $row;
}
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<thead><tr class='info';><th>Name</th><th>Class</th><th>Sub1</th><th>Sub2</th><th>Sub3</th><th>Sub4</th></tr></thead><tbody><tr class='success';><td>{$row['name']}</td><td>{$row['class']}</td><td>{$row['Sub1']}</td><td>{$row['Sub2']}</td><td>{$row['Sub3']}</td><td>{$row['Sub4']}</td></tr></tbody></table>";
echo "</table>";
// Print the data
while($row = mysql_fetch_row($result)) {
foreach($row as $_column) {
echo "{$_column}";
}
}
}
} else {
echo "Information Not Available";
}
?>
</table>
</body>
</html>
My code is fetching all the result matching the criteria but displaying only one (first result) result in table and all other are just only written without space in betweem them... I cannot specify the row number as I don't know the exact number, all rows are varying depending upon the class or cannot write the same repeated code for echoing all the row because I don't know how much exactly row is...
What changes should be made in the code to display all the SQL table data in html/PHP generated table ?