|
|
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
Привет. Тут задался вопросом, в цикле php идет несколько картинок, получаю там их названия и кладу в папку. Названия идут тупо kartinka.jpg и тп, вопрос как их лучше положить в базу ? чтобы потом в цикле по связи разобрать на клиенте, видел где то просто в поле в базе лежит через запятую, где то строками, что посоветуете? и как записать массив в поле что в запрос подставить в insert? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 18:34 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
angrybotТут задался вопросом, в цикле php идет несколько картинок, получаю там их названия и кладу в папку. Названия идут тупо kartinka.jpg и тп, вопрос как их лучше положить в базу ?Что именно положить в базу - имена файлов или непосредственно изображения (бинарные данные)? angrybotчтобы потом в цикле по связи разобрать на клиенте, видел где то просто в поле в базе лежит через запятую, где то строкамиЧто именно предполагается разбирать? Если речь идет об именах файлов, то ряде случаев запятая вполне приемлема (если только она гарантировано не встречается в именах), как и любой другой разделитель. С другой стороны, такой способ далеко не лучший при поиске по имени файла, например. angrybotчто посоветуете?Изложить условия задачи и проблему более внятно, так, чтобы понятно было не только Вам. И ещё, Ваш пост очень сложно читать и понимать. Русский язык для Вас не родной? angrybotкак записать массив в поле что в запрос подставить в insert?Запрос есть текстовая строка. Таким образом, массив или элементы массива необходимо привести к строковым значениям. Как вариант, массив можно серилизовать или преобразовтаь в JSON. Но это очень сильно зависит от задачи, от конкретного случая. Может статься, что лучше хранить пары "ключ=>значение", например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 19:04 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
Задача хранить только названия имен картинок пример: я загрузил к товару 3 картинки: abfbfb.jpg dfdffff.jpg 34444.jpg 3 картинки, я хочу эти 3 картинки положить в поле с названием id_image соответственно к товару к кому они принадлежат, сейчас я загружаю картинки только на хост через цикл foreach где их перебираю, а надо после перебора чтобы уходили данные в базу. Вот и спрашиваю как лучше массив картинок подставить в запрос и как их там хранить, только названия повторюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 19:09 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
angrybotкак лучше массив картинок подставить в запросВ общем и целом, СУБД без разницы, чего Вы понапихали в текстовое поле. Если Вам удобно будет после получения обрабатывать данные "через запятую" - храните "через запятую". Если в Вашей конкретной задаче окажется, что запятая может быть частью имени "картинки" (например, имя файла " В чащах юга жил бы цитрус? Да, но фальшивый экземпляр!.jpg"), то такой разделитель не подойдет . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 19:37 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
angrybot , может что-то лишнее предложу, но мне кажется так будет более правильно. Если ты при загрузке на сервер картинки просто кладёшь в одну папку - то это изначально некорректное решение. Ведь загрузив две разных картинки с одинаковым именем tovar.jpg ты получишь проблему. Как это решается ты можешь увидешь например на сайтах типа контакта. Схема такая: 1. Пользователь грузит картинки на сервер через форму. 2. В цикле foreach для каждого файла картинки вычисляется хеш функция. Допустим md5. И для каждого уникального файла (уникального по содержимому) появляется 32-х символьная строка типа из символов 0-F. 3. Далее сохраняешь полученные файлы в папки на сервере организованные по следующему принципу: - папка первого уровня это первый символ хеша, папка второго уровня - это второй символ хеша. Имя файла - это сам хеш. И получится что например файл 123.jpg хеш от которого - b609.....78 будет располагаться в файловой системе где-то: .../images/b/6/b609....78.jpg 4. В БД для сохранения соответствия картинок товарам такие таблицы: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 20:10 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
kormotЕсли ты при загрузке на сервер картинки просто кладёшь в одну папку - то это изначально некорректное решение. Ведь загрузив две разных картинки с одинаковым именем tovar.jpg ты получишь проблему.проблема будет не только в этом. если в папке больше 2000 файлов- будут приличные тормоза ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 20:23 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
вадяkormotЕсли ты при загрузке на сервер картинки просто кладёшь в одну папку - то это изначально некорректное решение. Ведь загрузив две разных картинки с одинаковым именем tovar.jpg ты получишь проблему.проблема будет не только в этом. если в папке больше 2000 файлов- будут приличные тормозаВопрос в том, для чего эти картинки лежат в ФС. Если только после загрузки и на время записи изображений в БД на время конкретной сессии конкретного пользователя - тогда это практически не проблема (даже если пользователь вздумает загрузить сразу несколько image.jpg из разных директорий своего кампутера, это решаемо). А для долговременного хранения, конечно, по хорошему, так не делают, если только это не "Мой первый сайт, с котором учусь на своих ошибках". С другой стороны, видел десятки вполне приличных сайтов с одномерной структурой хранения картинок. Как-то работают. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 20:43 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
vkle, Ну это не первый мой проект, просто везде по одной картинке было там я давай картинке id а он уникальный, тк id с автоинкрементом а потом по функции искал ее и отображал на клиенте, вариант с множеством папок к примеру как у экспорта 1с не подходит Есть какие то решения чтобы быстро записать и попроще разобрать в цикле на клиенте? Буду благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 21:16 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
angrybot , твой язык слишком тяжкий для понимания. У мастера Йоды видно говорить учился ты? :) Что на клиенте ты хочешь разбирать? Картинки? Которые хранятся на сервере? Поток мыслей своих останови, затем собери в кулак их и когда сможешь обуздать свой разум то сформулируй уже задачу. Именно тогда сам поймёшь всё! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 22:49 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
Постараюсь собрать все в кулак! Вот как щас хранится название картинки у меня в базе данных: http://prntscr.com/l5vqmn поле img в нем лежит название картинки к каждой записи тип 123.jpg, я хочу к 1 записи загрузить несколько картинок, вот и спрашиваю как лучше записывать названия картинок к записи в поле img, если картинок несколько к примеру 3-4 штуки, и как в таком случае в запрос подставить этот массив названий картинок вроде объяснил) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 12:25 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
Да хоть и через запятую (или любой другой разделитель) перечислить. Это самый компактный вариант. Ещё варианты - серилизация и JSON (особенно, если массив ассоциативный). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 12:44 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
вадяесли в папке больше 2000 файлов- будут приличные тормоза Не будут. Только если ты в эту папку начнёшь лазить каким-нибудь файловым менеджером, тогда он будет тормозить при получении полного списка, атрибутов, его сортировке и отображении. А с доступом к файлам по известному имени проблем не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 13:27 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНе будут. Только если ты в эту папку начнёшь лазить каким-нибудь файловым менеджером, тогда он будет тормозить при получении полного списка, атрибутов, его сортировке и отображении. А с доступом к файлам по известному имени проблем не будет.прежде чем получить по имени - надо все прочитать всё и атрибуты в том числе. проверено ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 13:33 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
angrybotполе img в нем лежит название картинки к каждой записи тип 123.jpg, я хочу к 1 записи загрузить несколько картинок, вот и спрашиваю как лучше записывать названия картинок к записи в поле img, если картинок несколько к примеру 3-4 штуки, и как в таком случае в запрос подставить этот массив названий картинок вроде объяснил) https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_group-concat ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 13:37 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
Ок, тогда буду ложить через запятую. Можно пример как в запрос подставить чтобы туда падали картинки, без json думаю сейчас запрос на insert выглядит так: Код: sql 1. 2. 3. 4. 5. 6. Работаю с PDO поле id_img где будут храниться картинки, как подставить чтобы через запятую перечислить в поле названия? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 13:51 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
angrybotполе id_img где будут храниться картинки, как подставить чтобы через запятую перечислить в поле названия?concat_ws ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 14:51 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
вадяconcat_wsПодозреваю, следующим вопросом будет "Что делать, если в одной статье картинок только три, а в другой статье их четыре?", ибо ТС хочет:angrybotнесколько к примеру 3-4 штукиА потом, вдруг, ещё и пять картинок неожиданно потребуется... Наверно, проще непосредственно в приложении подготовить строку "через запятую". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 16:19 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
vkleНаверно, проще непосредственно в приложении подготовить строку "через запятую". А потом ощутить все последствия нарушения первой НФ на собственном опыте. Тоже, конечно, вариант. "Не хочешь учиться через голову - будешь убиться через задницу." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 13:45 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Советы конечно один лучше другого ) Народ посерьезнее бы, если не хотите дать ответ на вопрос зачем обсирать и мусорить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 13:56 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
angrybotСоветы конечно один лучше другого ) Народ посерьезнее бы, если не хотите дать ответ на вопрос зачем обсирать и мусоритья дал советы - прочитай доки и используй ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 14:04 |
|
||
|
Как хранить картинки в БД
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovvkleНаверно, проще непосредственно в приложении подготовить строку "через запятую". А потом ощутить все последствия нарушения первой НФ на собственном опыте. Тоже, конечно, вариант. "Не хочешь учиться через голову - будешь убиться через задницу."В идеале вообще отдельную таблицу делать под иллюстрации, тогда не возникнет подобных вопросов в принципе. Однако, оно потребует значительных переделок в коде приложения, что вряд ли возможно, когда ставятся вопросы вроде "как записать значения элементов массива через запятую". Ну так то дело хозяйское, хождение по граблям тоже ж штука полезная. Особенно, когда грабли свои. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 20:27 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39717117&tid=1829541]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 148ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...