[英]How to echo SQL table data in auto created html/PHP table
我有一個名為 res 的 SQL 表,其中包含一些行和列。 例如:
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
如果有人在 class.php 表單中輸入 5,那么結果應該按照名稱的降序顯示在自動生成的 html/PHP 表中。 例如:
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
............................
............................
我的 class.php 代碼是
<!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>
我的代碼正在獲取符合條件的所有結果,但只在表中顯示一個(第一個結果)結果,而所有其他結果只是在它們之間沒有空格...我無法指定行號,因為我不知道確切的數字,所有行都因類而異,或者無法編寫相同的重復代碼來回顯所有行,因為我不知道行到底是多少......
應在代碼中進行哪些更改以在 html/PHP 生成的表中顯示所有 SQL 表數據?
這是設置以 HTML 形式顯示的動態列和記錄所需的代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<?php
# Your database credentials goes here
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "stackoverflow";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
# Set Your Table class id to fetch records
# You can set it from $_GET OR $_POST value
$class = 5;
//$class = mysqli_real_escape_string($conn, $_POST['Class']);
# Fetch records
$sql = "SELECT * FROM res WHERE class = '$class'";
$result = $conn->query($sql);
$columns = array();
$resultset = array();
# Set columns and results array
while ($row = mysqli_fetch_assoc($result)) {
if (empty($columns)) {
$columns = array_keys($row);
}
$resultset[] = $row;
}
# If records found
if( count($resultset > 0 )) {
?>
<table class="table table-bordered" >
<thead>
<tr class='info';>
<?php foreach ($columns as $k => $column_name ) : ?>
<th> <?php echo $column_name;?> </th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<?php
// output data of each row
foreach($resultset as $index => $row) {
$column_counter =0;
?>
<tr class='success';>
<?php for ($i=0; $i < count($columns); $i++):?>
<td> <?php echo $row[$columns[$column_counter++]]; ?> </td>
<?php endfor;?>
</tr>
<?php } ?>
</tbody>
</table>
<?php }else{ ?>
<h4> Information Not Available </h4>
<?php } ?>
</body>
</html>
希望,它可以幫助你的朋友。 我也修改了編碼錯誤,所以不用擔心:)
我遇到了同樣的問題,所以我想出了一個函數,該函數可以將名為 $result 的數組中的 SQL 數據(表)打印為適當的 html 表,並且它會響應。 這意味着可以正確打印各種 SQL 表。
function printTable($result){
if(!mysqli_num_rows($result) > 0){
echo 'no results';
}
else{
echo '<table class="table">';
$y=0;
while($row = mysqli_fetch_assoc($result)){
if ($y <= 0){
echo "<tr>";
for ($x = 0; $x < count(array_keys($row)); $x++){
echo "<th>";
echo array_keys($row)[$x];
echo "</th>";
}
echo "</tr>";
}
echo "<tr>";
for ($x = 0; $x < count(array_keys($row)); $x++){
echo "<td>";
echo $row[array_keys($row)[$x]];
echo "</td>";}
echo "</tr>";
$y++;
}
echo "</table>";
}
}
您可以通過從 sqli 查詢中獲取 $result 並將其解析為如下功能來使用該函數:
$sql = "SELECT * FROM table";
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result) > 0){
printTable($result);}
輸出看起來像這樣:
columnName1...columnName2...columnName3...columnNameX
.....................................................
row1Field1 ...row1Field2 ...row1Field3 ...row1FieldX
row2Field1 ...row2Field2 ...row2Field3 ...row2FieldX
row3Field1 ...row3Field2 ...row3Field3 ...row3FieldX
rowXField1 ...rowXField2 ...rowXField3 ...rowXFieldX
評論:我知道膠水是否是正確的做法,因為我是初學者
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.