mysql — выводит список внутри ячейки и выводит его таким же образом в переполнении стека

Можно ли сделать список внутри ячейки таблицы в MySQL и выводить его таким же образом при получении через php?
Я пытался решить это, но я не знаю, возможно ли это.

Пример этого в моей таблице пакетов, у меня есть column_name (Включения), и в каждой ячейке есть списки данных, разделенные новой строкой. Но всякий раз, когда я получаю его в php, он отображается в одном предложении.

2

Решение

Хотя 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.

Редактировать: Мне потребовалось некоторое время, чтобы напечатать это, и я не увидел изменения в ответе Бармара.

2

Другие решения

использование nl2br() в вашем коде PHP, чтобы перевести новые строки в HTML <br> разметки.

echo nl2br($row['inclusions']);

Однако, вам, вероятно, будет лучше нормализовать базу данных. Списки не должны быть в одной ячейке, они должны быть в таблице отношений. Тогда вы можете использовать JOIN найти все связанные значения и отобразить их любым подходящим способом, например, в <table> или же <ul>,

3

По вопросам рекламы [email protected]