Линдсей - общительная девушка, поэтому она встречает много людей, и она хотела бы организовать свой блокнот следующим образом:
сначала вкладки , которые она называет несколько похожими на 'школа ',' работа ',' вечеринка ',' онлайн 'и т. д.
внутри каждой вкладки она создает группы , такие как: «круто», «удобно», «цепко», «хорошо целуются»,«материал для брака» и т. д.
и внутри этих групп действительно ребята , каждый из которых только в одной группе.
Итак, теперь я запрашиваю базу данных, чтобы показать ей блокнотс первого взгляда.
function getNotebook($user_id)
{
// $data[][][] = array(); // declare 3-dimensional array
$sql = "SELECT tab_id, tab_name, tab_color FROM tab WHERE user_id = ?";
$query = $this->db->query($sql, $user_id);
foreach ($query->result() as $row)
{
// ... (put each tab array in the first dimension of $data array)
$sql = "SELECT group_id, group_name, group_size, group_position FROM group WHERE tab_id = ?";
$query2 = $this->db->query($sql, $row->tab_id);
foreach ($query2->result() as $row2)
{
// ... (put each group array in the second dimension of $data)
$sql = "SELECT person_id, person_name, person_gender, person_eye_color FROM person WHERE group_id = ?";
$query3 = $this->db->query($sql, $row2->group_id);
foreach ($query3->result() as $row3)
{
// ... (put each person array in the third dimension of $data)
}
}
}
return $data;
}
Я знаю, что нехорошо создавать HTML прямо здесь, в модели, поэтому мне нужно сохранить его (в массиве?) и вернуть его в контроллер, а затем в модель, где япотребуется пройти через это и добавить теги HTML.
Комментарии в функции - это то место, где мне нужна ваша помощь.
Решение №2:
Добавить поле user_idв таблицу person и получите всю информацию по этому запросу:
$sql = "SELECT * FROM person p
INNER JOIN group g ON g.id = p.group_id
INNER JOIN tab t ON t.id = g.tab_id
WHERE p.user_id = ?
ORDER BY t.id, g.id";
$query = $this->db->query($sql, $user_id);