Создание таблицы HTML приводит к дополнительным столбцам - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь получить таблицу 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 столбца и десять строк, однако для некоторыхпричина, это выводит 8 столбцов и 10 строк ...

print_r($data) приводит к

Array ( 
  [0] => Array ( 
    [Place] => 1 
    [0] => 1 
    [Car] => Chev
    [1] => Chev
    [Color] => Black
  ) 
)

Ответы [ 2 ]

1 голос
/ 29 апреля 2019

Вывод правильный.Поскольку вы извлекаете имена и индексы столбцов с помощью запроса, следовательно, вы получаете эти выходные данные.

Вместо fetchAll() вы можете сделать это:

$data = $dbh->query("SELECT * FROM questiondata")->fetch_assoc();

Это будет только отвечатьвернитесь к именам столбцов, и вы сможете сгенерировать правильный формат таблицы.

Вы можете прочитать больше здесь Методы результата PHP Mysqli

Редактировать:

Послевыполнив оператор, используйте его, чтобы получить желаемый вывод для PDO:

$stmt->fetch(PDO::FETCH_ASSOC);

Редактировать 2:

Не знал, что вы используете Sqlite.

Для Sqlite, вы можете сделать это:

$data = $dbh->query("SELECT * FROM questiondata")->fetch(SQLITE_ASSOC);
0 голосов
/ 29 апреля 2019

Вы можете использовать этот код и заполнить свои столбцы

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...