PHP 生成動態表
通常,我們將 HTML 用於表格。但是,我們需要我們的站點動態地從資料庫中提取欄位並動態地將內容合併到 HTML 表中。
本教程教授了兩種在 php 中生成動態表的簡單方法。
在 PHP 中使用 while
迴圈生成動態表
在第一個例子中,我們使用 while
迴圈和 if
語句來生成這些表格。
首先,我們設定一個遞增變數 $dynamictable
,然後啟動 while
迴圈。每個表格行將包含 20 個表格單元格 <td>
和總共 20 行。
我們還動態地使用換行符和結束標記。
<!DOCTYPE html>
<body>
<div align="center">
<form action="table.php" method="post">
<input type="submit" value="Generate Dynamic Table" name="table">
<table border="2">
我們使用表單文字欄位來使用 isset()
函式。當使用者使用 while
迴圈或 for
迴圈單擊 Generate Dynamic Table
時。
isset()
函式設定為 true
,然後執行程式碼。這是不必要的,但可以讓你更動態地控制你的網頁。
<?php
if(isset($_POST['table'])){
//initize incrementing varibale
$dynamictable = 0;
//start while loop
while ($dynamictable < 200)
{
// set modulus operator to divide table rows automatically
if($dynamictable%20 == 0)
{
//table row starts
echo "<tr>".PHP_EOL;
}
echo "<td>".$dynamictable."</td>".PHP_EOL;
//each time while loop increments table cell
$dynamictable++;
if($dynamictable%20 == 0)
{
//table row closes
echo "</tr>".PHP_EOL;
}
} // while loop closes
} // if isset condition closes
?>
輸出:
在 PHP 中使用 for
迴圈生成動態表
儘管有多種方法可以使用 for
迴圈生成動態表,但這個簡單的程式碼將有助於完成大多數任務。
我們還使用 mt_rand
,為每個表格單元格分配一個唯一編號。
<?php
//set table row and colums limit
$R = 10;
$C = 20;
echo "<table border=1>";
//start for loop and set rows limit
if(isset($_POST['forlooptable'])){
for($i=1;$i<=$R;$i++)
{
echo "<tr>";
//start for loop to set cols limit
for($j=1;$j<=$C;$j++){
//we are generating random numbers in each table cell
echo '<td>' . mt_rand($i, $i*100) . mt_rand($j, $j*100) . '</td>'; //mt_rand function randomly generates a number
}
echo "</tr>";
}
echo "</table>";
}
?>
</table>
</form>
</div>
</body>
</html>
Sarwan Soomro is a freelance software engineer and an expert technical writer who loves writing and coding. He has 5 years of web development and 3 years of professional writing experience, and an MSs in computer science. In addition, he has numerous professional qualifications in the cloud, database, desktop, and online technologies. And has developed multi-technology programming guides for beginners and published many tech articles.
LinkedIn