Можно ли сделать список внутри ячейки таблицы в MySQL и выводить его таким же образом при получении через php?
Я пытался решить это, но я не знаю, возможно ли это.
Пример этого в моей таблице пакетов, у меня есть column_name (Включения), и в каждой ячейке есть списки данных, разделенные новой строкой. Но всякий раз, когда я получаю его в php, он отображается в одном предложении.
Хотя Barmar верен, я бы предложил изменить дизайн вашей базы данных. Вместо того, чтобы перечислять несколько значений в одной ячейке, у вас должна быть отдельная запись для каждого значения и ссылка на нее с именем списка.
+-----------+ +------------------+
| List_Name | | List_Item |
|-----------| |------------------|
| ID | Name | | List_ID | Value |
| 0 | Frt | | 0 | Apple |
| 1 | Veg | | 1 | Tomato |
+-----------+ | 1 | Potato |
| 0 | Pear |
+------------------+
Запросы по List_Name:
SELECT b.Value
FROM List_Item b
JOIN List_Name a ON b.List_ID = a.ID
WHERE a.Name = 'Frt'
Вернуть все значения:
SELECT b.Value
FROM List_Item b
JOIN List_Name a ON b.List_ID = a.ID
Вернуть все значения и порядок по имени:
SELECT b.Value
FROM List_Item b
JOIN List_Name a ON b.List_ID = a.ID
ORDER BY a.Name ASC | DESC
Вернуть индивидуальные значения:
SELECT b.Value
FROM List_Item b
JOIN List_Name a ON b.List_ID = a.ID
WHERE b.Value = 'Apple'
Это даст вам сырой вывод: Apple Pear
(вы можете вручную добавить разрыв строки)
Конечно, вы можете объединить это с циклом и добавить разрыв строки с помощью php.
Редактировать: Мне потребовалось некоторое время, чтобы напечатать это, и я не увидел изменения в ответе Бармара.
использование nl2br()
в вашем коде PHP, чтобы перевести новые строки в HTML <br>
разметки.
echo nl2br($row['inclusions']);
Однако, вам, вероятно, будет лучше нормализовать базу данных. Списки не должны быть в одной ячейке, они должны быть в таблице отношений. Тогда вы можете использовать JOIN
найти все связанные значения и отобразить их любым подходящим способом, например, в <table>
или же <ul>
,