需求:從數據庫讀取單一字段(如員工姓名),按每行固定列數(如 12 列)輸出表格。核心難點:單字段無法像多字段直接 foreach 輸出 <tr><td>,需控制換行邏輯。
<tr>
<?php
$res = mysql_query("SELECT EI_EmployeeId, EI_EmployeeName FROM employeeinfo ORDER BY EI_EmployeeId ASC LIMIT 0, 10");
while ($row = mysql_fetch_array($res)) {
?>
<td>
<input type="checkbox" name="menuemployname" value="<?php echo $row['EI_EmployeeName']; ?>" />
<?php echo $row['EI_EmployeeName']; ?>
</td>
<?php } ?>
</tr>
<?php
$res = mysql_query("SELECT EI_EmployeeId, EI_EmployeeName FROM employeeinfo ORDER BY EI_EmployeeId ASC");
$total = mysql_num_rows($res);
$perRow = 10; // 每行列數
$totalRows = ceil($total / $perRow);
for ($k = 0; $k < $totalRows; $k++) {
$offset = $k * $perRow;
?>
<tr>
<?php
$res2 = mysql_query("SELECT EI_EmployeeId, EI_EmployeeName FROM employeeinfo ORDER BY EI_EmployeeId ASC LIMIT $offset, $perRow");
while ($row = mysql_fetch_array($res2)) {
?>
<td>
<input type="checkbox" name="menuemployname" value="<?php echo $row['EI_EmployeeName']; ?>" />
<?php echo $row['EI_EmployeeName']; ?>
</td>
<?php } ?>
</tr>
<?php } ?>
<?php
$res = mysql_query("SELECT EI_EmployeeName FROM employeeinfo ORDER BY EI_EmployeeId ASC");
$names = [];
while ($row = mysql_fetch_array($res)) {
$names[] = $row['EI_EmployeeName'];
}
$perRow = 10;
$chunks = array_chunk($names, $perRow);
?>
<table>
<?php foreach ($chunks as $rowNames): ?>
<tr>
<?php foreach ($rowNames as $name): ?>
<td>
<input type="checkbox" name="menuemployname[]" value="<?php echo htmlspecialchars($name); ?>" />
<?php echo htmlspecialchars($name); ?>
</td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>
array_chunk() 原生分組,代碼極簡。htmlspecialchars()、name="menuemployname[]" 數組提交。