我正在尝试拉出一个sql表并转换为html表。
主循环:
function generate_HTMLTable($data){
$tr="";
foreach ($data as $row) {
$td ="";
for($i=0; $i<count($row);$i++)
$td=$td."<td>$row[$i]</td>\n";
$tr=$tr."<tr>".$td."</tr>\n";
}
return "\n<table>".$tr."</table>\n";
}
实际表只有4列和10行,但由于某种原因,它输出8列和10行...
print_r($data)
收益率
Array (
[0] => Array (
[Place] => 1
[0] => 1
[Car] => Chev
[1] => Chev
[Color] => Black
)
)
输出是正确的。由于您通过查询获取列名和索引,因此您将获得该输出。
而不是fetchAll()
你可以这样做:
$data = $dbh->query("SELECT * FROM questiondata")->fetch_assoc();
这只会响应列名称,然后您可以生成正确的表格格式。
你可以在这里阅读更多PHP Mysqli Result Methods
编辑:
执行语句后,请使用此方法获取PDO所需的输出:
$stmt->fetch(PDO::FETCH_ASSOC);
编辑2:
不知道你使用的是Sqlite。
对于Sqlite,您可以这样做:
$data = $dbh->query("SELECT * FROM questiondata")->fetch(SQLITE_ASSOC);
您可以使用此代码并编译您的列
function generate_HTMLTable($data){
$table = "<table>";
$table = $table + "<tr><td>ID</td><td>Nom</td> ... </tr>";
foreach ($data as $row) {
$table = $table + "<tr><td>"+$row['id']+"</td><td>"+$row['nom']+"</td> ... </tr>";
}
$table = $table + "</table>";
return $table;