Картинки в MySQL

Статус
Закрыто для дальнейших ответов.

RuslanM

Новичок
Регистрация
18.03.2010
Сообщения
3
Привет, всем! Подскажите, принцип работы. Мне нужно чтобы при описании, цене продукции выводило и картинку продукции. Почитал что нужно в базу сохранять ссылки на картинке. Какой тип должен содержать эти ссылки?
 

Creator

Administrator
Команда форума
Регистрация
03.03.2005
Сообщения
1 745
За последний месяц эту тему уже не раз поднимали на форуме: Сохранение картинок в mysql (подробный ответ)

Какой тип должен содержать эти ссылки?
Полагаю, имелось ввиду тип столбца для ссылок - достаточно char(100) или varchar(100) в зависимости от типа таблицы (char для фиксированной, varchar для динамичной).
 

RuslanM

Новичок
Регистрация
18.03.2010
Сообщения
3
последовательность такова?
в БД

Код:
CREATE TABLE zagotovka(.....foto varchar(100) not null,....);

mysql_query('INSERT INTO zagotovka (..,foto,..) values("..........")'); <----что здесь указывается URL?
например у меня папка находиться Z:\home\localhost\www\allfoto, а нужная фотография в этом альбоме наз. foto_1.gif. Если да, то как именно написать?
 

Creator

Administrator
Команда форума
Регистрация
03.03.2005
Сообщения
1 745
например у меня папка находиться Z:\home\localhost\www\allfoto, а нужная фотография в этом альбоме наз. foto_1.gif. Если да, то как именно написать?
Если у вас папка загрузок не будет меняться в течении времени, то достаточно хранить название файла foto_1.gif, если будет, то храните в виде dir1/foto_1.gif.

На заметку: лучше не сохранять название файла в неизменном виде, а хешировать его, дабы не столкнутьсяс с дублями.

Код:
md5('foto_1.gif');
P.S. На будущее прошу выделять код, кнопка <>
 

RuslanM

Новичок
Регистрация
18.03.2010
Сообщения
3
про хеширование я понимаю. Что нужно указывать в
Код:
values("..........")
?
 

Serg@NT

Well-Known Member
Регистрация
20.02.2010
Сообщения
506
На заметку: лучше не сохранять название файла в неизменном виде, а хешировать его, дабы не столкнутьсяс с дублями.
Код:
md5('foto_1.gif');
А можно отсюда поподробней?
1) что изменится, если захешировать 2 одинаковых имени файла? Хэш ведь тоже будет одинаковым
2) Как потом это всё расхешировать, чтоб файл найти?
 

tigra60

Спасатель
Регистрация
10.12.2009
Сообщения
1 990
Дык можно к имени файла добавить, например, mktime:
Код:
// определяем файлу уникальное имя
$img_name = md5 ($_FILE['file']['name'].mktime ()).'.'.pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
// перемещаем файл в нужную папку под этим именем
move_uploaded_file ($_FILE['file']['tmp_name'], 'path/to/images/'.$image_name);
// записываем имя файла в базу
mysql_query ("UPDATE photos SET filename='$img_name') or die ("файла патиряласяма");
Думаю, понятно, что расхешировать не нужно, чтобы файл найти.
Удачи!
 

Creator

Administrator
Команда форума
Регистрация
03.03.2005
Сообщения
1 745
А можно отсюда поподробней?
1) что изменится, если захешировать 2 одинаковых имени файла? Хэш ведь тоже будет одинаковым
Я поторопился с ответом и не написал, что для защиты от дублей нужно к имени файла дописывать временную метку (time()). Подробно все описал уважаемый Tigra60 (+1).

2) Как потом это всё расхешировать, чтоб файл найти?
Если необходим поиск по файлам, тогда имеет смысл вести отдельную табличку с хэшем, исходными именами файлов(по необходимости), путями и описанием alt.
 

Serg@NT

Well-Known Member
Регистрация
20.02.2010
Сообщения
506
Ну, вот я как раз и подумал, что вы о том, что говорит tigra, просто на всякий случай спросил, мало ли чего новое придумали. :)
 
Статус
Закрыто для дальнейших ответов.
Верх Низ