Я пытаюсь построить таблицу HTML из записей базы данных.
Но по какой-то причине таблица не работает, из таблицы берется только первый элемент, называемый Контактами, и все номера для заполнения первой строки таблицы Телефонов.
контакты таблицы
id firstName lastName
1 sdf sdf
2 lala yaya
3 hgj kj
настольные телефоны
contact_id number
1 34
2 654
3 345
3 455
полученные результаты
firstName lastName number number number
hgj kj 34 654 345
Я немного боюсь этого запроса
SELECT contacts.firstName, contacts.lastName, group_concat(phones.number) as number
FROM contacts LEFT JOIN phones WHERE contacts.id = phones.contact_id;
, так как я считаю, что тогда это неправильнои получает только одну строку.
<?php
try
{
//open the database
$db = new PDO('sqlite:db1.sqlite');
//now output the data to a simple HTML table...
echo '<table id="kontaktid"><thread>';
echo '<tr><th>Eesnimi</th><th>Perekonnanimi</th><th>Telefon</th><th>Telefon</th><th>Telefon</th></tr></thread><tbord>';
$result = $db->query("SELECT contacts.firstName, contacts.lastName, group_concat(phones.number) as number
FROM contacts LEFT JOIN phones WHERE contacts.id = phones.contact_id;")->fetchAll();
foreach($result as $row)
{
$numbers = explode(',', trim($row['number']));
list($first, $second, $third) = $numbers;
echo $row['firstName'];
echo "<tr><td>".$row['firstName']."</td>";
echo "<td>".$row['lastName']."</td>";
echo "<td>".$first."</td>";
echo "<td>".$second."</td>";
echo "<td>".$third."</td>";
echo "</tr>";
}
echo "</tbody></table>";
}
catch(PDOException $e)
{
print 'Exception : ' .$e->getMessage();
}
$db = NULL;