我正在尝试提取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
)
)
答案 0 :(得分:1)
输出正确。由于您通过查询获取列名和索引,因此您将获得该输出。
您可以执行以下操作,而不是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);
答案 1 :(得分:0)
您可以使用此代码并填写您的列
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;