首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 單字段多列橫向輸出:數據庫讀取分頁佈局實現(每行 12 列)

     編輯:PHP 綜合知識

需求:從數據庫讀取單一字段(如員工姓名),按每行固定列數(如 12 列)輸出表格。核心難點:單字段無法像多字段直接 foreach 輸出 <tr><td>,需控制換行邏輯。

方案:LIMIT 分頁 + 計算總行數 + 雙層循環

第一行:首批數據

<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() 原生分組,代碼極簡。
  • 易於維護、擴展(如添加分頁導航、AJAX 載入更多)。
  • 安全: 輸出用 htmlspecialchars()、name="menuemployname[]" 數組提交。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved