我有一位客戶要求我修改其中一個腳本以顯示已刪除的文件名稱表。我不允許修改mysql到mysqli,因爲這不是我的網站。使用PHP生成帶有靜態數據庫的MySQL數據的HTML表格
與其將所有內容放在一行並進行分頁,他希望列使信息可以放在一個頁面上。我嘗試了好幾種方法,但沒有人可以正常工作
方法1:顯示的列數正確,但在每一個細胞重複相同的文件名:
$q = "SELECT `name` FROM `files` WHERE `deleted` = 1";
$r = mysql_query($q);
$rows = mysql_num_rows($r);
$deleted = mysql_fetch_assoc($r);
// Build table and iterate through the results
$end = $rows; // total # of results
$t_rows =ceil($end/5); // number of cells per row
$x = 0;
$start = 0;
echo "<table>";
while($x <= $t_rows){
echo "<tr>";
for($y = 0; $y < 5; $y++, $start++){
if($start <= $end){
echo "<td>".$deleted['name']."</td>";
}
}
echo "</tr>";
$x++;
}
echo "</table>";
方法2:顯示正確數量的列,但每行都重複一個文件名5x。 (例如,第1行具有第一個記錄的名稱5次,第2行,第2個文件的名稱等)。
$q = "SELECT `name` FROM `files` WHERE `deleted` = 1";
$r = mysql_query($q);
$rows = mysql_num_rows($r);
// Build table and iterate through the results
$end = $rows; // total # of results
$t_rows =ceil($end/5); // number of cells per row
$x = 0;
$start = 0;
echo "<table>";
while($x <= $t_rows){
echo "<tr>";
while($deleted = mysql_fetch_assoc($r)){
for($y = 0; $y < 5; $y++, $start++){
if($start <= $end){
echo "<td>".$deleted['name']."</td>";
}
}
echo "</tr>";
$x++;
}
}
echo "</table>";
在此先感謝
請注意添加'htmlspecialchars()' - 必須防止XSS攻擊。 – gahooa
請注意,mysql_ *函數已棄用。使用MySQLi或PDO代替 – Timr
@gahooa - 感謝這些信息,但是您認爲有必要擔心這種攻擊,因爲頁面通過會話控制檢查被鎖定,並且沒有數據通過$ _GET傳遞?另外,沒有其他站點可以交互或將數據傳遞給腳本本身的API。 – rws907