У меня есть две таблицы, комнаты и утилиты .
В таблице с именем комнаты , у меня есть столбец с названием утилиты . В этом столбце хранится запятые номера, ссылающиеся на идентификаторы от утилиты таблицы .
Как я могу разделить (взрываться?) rooms
ID
Name
Utilities
< /thead>
1 < /td>
Room1 < /td>
1,3,4 < /td>
< /tr>
< /tbody>
< /td>
< /tr>
< /tbody> < /> < /> < /br />
< /tbody> < /br /> < /td. utilities
ID
Device
1 < /td>
динамики < /td>
< /tr>
2 < /td>
tv < /td>
/>3
Smart TV
4
Web camera
< /table> < /div>
Я хочу распечатать что -то вроде этого: < /p>
Room1: Speakers, Smart TV, Web camera
Вот что у меня есть до сих пор, confroomreport.php :
Room
Utilities
и в db.php
public function getDeviceList()
{
$arr = array();
$statement = $this->conn->prepare("SELECT id, device from utilities order by device ASC");
$statement->bind_result($id, $device);
$statement->execute();
while ($statement->fetch()) {
$arr[] = [ "id" => $id, "device" => $device];
}
$statement->close();
return $arr;
}
public function getConfRoomList()
{
$arr = array();
$statement = $this->conn->prepare("SELECT id, name, utilities from rooms order by name ASC");
$statement->bind_result($id, $name, $utilities);
$statement->execute();
while ($statement->fetch()) {
$arr[] = [ "id" => $id, "name" => $name, "utilities" => $utilities];
}
$statement->close();
return $arr;
}
edit : обновленный код на основе принятого решения. public function joinDevRoom()
{
$arr = array();
$statement = $this->conn->prepare("SELECT r.name,GROUP_CONCAT(u.device) FROM room r LEFT JOIN utilities u ON FIND_IN_SET(u.id,r.utilities)>0 GROUP BY r.id");
$statement->bind_result($id, $utilities);
$statement->execute();
while ($statement->fetch()) {
$arr[] = [ "id" => $id, "utilities" => $utilities];
}
$statement->close();
return $arr;
}
И это мой обновленная конфликт.
Room
Utilities
Подробнее здесь: https://stackoverflow.com/questions/503 ... econd-tabl