Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 09.02.2014
Сообщений: 20

Разногласие с учителю насчет того, где сохранять картинки

25.06.2014, 18:15. Показов 694. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На последнем уроке, изучая MySQL, мы создавали магазин который продает телефончики. Каждому телефону в MySQL, мы дали "ID, имя", "описание", "цена" и "количество", но не картина.

Вместо того, что извлекать картину из базы данных, мы извлекаем её при помощи того, что называем картину как номер ID ("1.jpg" "2.jpg" "3.jpg" ...etc). Вот как это работает посредством кода:

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
foreach ($items as $item)
            {
                ?>
                <tr>
                    <td><img src="<?php echo "./img/items/".$item->id.".jpg";?>"></td>
                    <td><?php echo $item->name;?></td>
                    <td><?php echo $item->description;?></td>
                    <td><?php echo $item->quantity;?></td>
                    <td><a class="button-buy" href="cart.php?id=<?php echo $item->id;?>">₪<?php echo $item->price;?></a></td>
                </tr>
                <?php 
            }
Понимаете?

Мой учитель с ума сошёл? По-моему, это плохой метод, и все данные лучше сохранять в MySQL... не так ли?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.06.2014, 18:15
Ответы с готовыми решениями:

Сохранять ли картинки в БД
Есть около 10 тысяч картинок в формате gif, которые нужно отображать на сайте. Вижу 2 варианта: 1) Хранить картинки в БД 2) Хранить...

Как насчет того чтобы объединиться в команду и наконец побить индусов и пакистанцев
Надоело! Большую часть самой интересной и оплачиваемой работы на RentACoder-е хапают компнды программистов из Индии или Пакистана. ...

Как загружать картинки в папку и сохранять название в бд?
Подскажите кто делал такое или дайте ссылку на туториал пожалуйста. Как загрузить картинку через диалог выбора файла и сохранить имя в бд,...

6
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
25.06.2014, 18:23
Ну тут палка о двух концах, данные даже в таком методе хранятся в БД т.е. имя твоей картинки есть id из БД, а если ты думаешь саму картинку хранить в БД, то с ума сошел ты.

Добавлено через 1 минуту
PS хранить картнку в БД в моем понимании это хранить сам файл внутри таблицы, не имя картинки, а именно сами данные изображения
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
25.06.2014, 19:15
хранить картинки на диске в виде jpg и ссылки на эти файлы в базе - это уже классика. При существующих технологиях - это оптимальный вариант. Хранение бинарных данных в реляционных базах, это большой перерасход ресурсов сервера. Логически, разделение мест хранения, не совсем правильно, но жизнь такова какова она есть..
0
0 / 0 / 0
Регистрация: 09.02.2014
Сообщений: 20
25.06.2014, 23:14  [ТС]
Я не имела в виду хранить сам файл внутри таблицы, это безумно. Я имела в виду хранить ПУТЬ к файлу внутри таблицы. Это имеет больше смысла чем просто называть картины как номер ID предмета и извлекать картины через этот номер. Сами подумайте: если надо удалить предмет -- надо удалить картину. Мы же делаем двойную работу! Как это не понятно?
0
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
26.06.2014, 00:30
Всё правильно тебя учат. Данный способ оптимальный. В базе хранят именно название. Путь обычно сохраняют в конфигурационном файле. Такая практика более удобна. Допустим на проекте где есть крупная картинка и маленькая для превью.
задаёшь:
PHP
1
2
3
4
// папка с большими картинками
define('SM_PRODUCTIMG', 'https://www.cyberforum.ru/php-database/userfiles/product_img/baseimg_smal/');
// папка с маленькими картинками
define('BIG_PRODUCTIMG', 'https://www.cyberforum.ru/php-database/userfiles/product_img/baseimg_big/');
Во первых ты не засоряешь базу каждый раз дублируя не нужный путь, во вторых проще поменять настройки в случае изменения.
При выводе просто добавляешь:
PHP
1
echo "<img src='".BIG_PRODUCTIMG.$baza['img']."'>";
0
0 / 0 / 0
Регистрация: 09.02.2014
Сообщений: 20
26.06.2014, 08:08  [ТС]
Ладно, я поняла. Но когда Вы говорите:

В базе хранят именно название.

Название это что - ID или Имя? По-моему, имеет больше смысла использовать имя (например "Samsung galaxy S5") чем номер ID.
0
 Аватар для mav
228 / 206 / 120
Регистрация: 23.06.2009
Сообщений: 481
26.06.2014, 11:07
Цитата Сообщение от Lera12 Посмотреть сообщение
Название это что - ID или Имя? По-моему, имеет больше смысла использовать имя (например "Samsung galaxy S5") чем номер ID.
путь до изображения (само имя, или же полный путь) в любом случае нужно хранить в отдельном поле таблицы, хотя бы потому, что может быть не "1.jpg", а "1.png"
что касается имени изображения, то оно может быть любым, хоть номером id, хоть названием, хоть переименовываться при загрузке а-ля вконтакте "2EgdDpSlULs.jpg"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.06.2014, 11:07
Помогаю со студенческими работами здесь

Где пообщаться насчёт способов продажи приложений, соблюдения всех тонкостей?
Подходит время публикации своих приложений, хочется пообщаться с людьми, которые давно и успешно продают приложения (или распространяют...

Как и где сохранять ответы на определенные комментарии
С добавлением и сохранением комментариев всё понятно. Не пойму логики, как и где сохранять ответы на определенные комментарии. Ну,...

Где сохранять контент для отдельной страницы?
Если я создам отдельную страницу contact.php для примера и буду ее использовать как отдельный шаблон для какой то страницы. Где можно...

Где можно почитать литературу насчёт графов начиная с простыми примерами и заканчивая профессиональными вычислениями
Где можно почитать литературу насчёт графов начиная с простыми примерами и заканчивая профессиональными вычислениями ? Очень хотела бы их...

насчет перечисления(зачем я объявляю переменную в перечислении? Приведите примеры где удобно использовать перечисление?)
зачем я объявляю переменную в перечислении? Чтобы мог обращаться к элементам перечисления? Правильно ли мое суждение и приведите примеры...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru