Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Хранение путь к изображениям в базе данных
 
 автор: uvajs   (13.06.2011 в 11:54)   письмо автору
 
 

Здравствуйте, уважаемые программисты!
Я конечно начинающий, и поэтому хочу Вашего совета.
Хочу сделать мини социальный сеть.
Теперь необходимо, чтобы пользователи могли добавить фотографии в свой Аккаунт.
Писать скрипт по добавлению фотографии я смогу, но где хранить путь к фото. если в базе, то каким образом? какое должно быть тип у поля? Подскажи пожалуйста, или еще что-то...

  Ответить  
 
 автор: cheops   (13.06.2011 в 12:20)   письмо автору
 
   для: uvajs   (13.06.2011 в 11:54)
 

>но где хранить путь к фото. если в базе, то каким образом? какое должно быть тип у поля?
Да, лучше всего в базе данных, поле должно быть одно текстовое, а лучше два поля - одно для хранения имени файла-изображения, а второе - для относительного пути (оно в последствии может поменяться и будет удобно производить замену одни запросом к таблице).

PS Следует также позаботиться о том, чтобы имена не содержали русских символов (их следует преобразовывать в транслит) и не перезатирали друг друга - в имена файлов следует встраивать идентификатор пользователя и время добавления в формате UNIXSTAMP.

  Ответить  
 
 автор: uvajs   (13.06.2011 в 19:56)   письмо автору
 
   для: cheops   (13.06.2011 в 12:20)
 

Когда я пишу запрос INSERT INTO к базе таким образом:

<? 
mysql_query 
("INSERT INTO users (img) VALUES('$name') WHERE login='$login'");


?>

в поле img не добавляется путь фото. Подскажите пожалуйста, как правильно его писать?

$name = хранится путь к фото.
img = поле в базе.

  Ответить  
 
 автор: cheops   (13.06.2011 в 20:53)   письмо автору
 
   для: uvajs   (13.06.2011 в 19:56)
 

В INSERT-запросах не нужно указывать конструкцию WHERE
<?php
  mysql_query 
("INSERT INTO users (img) VALUES('$name')"); 
?>

  Ответить  
 
 автор: Добрый кот   (13.06.2011 в 21:26)   письмо автору
 
   для: cheops   (13.06.2011 в 20:53)
 

А к какому пользователю добавется картинка, если их (пользователей) скажем 100?
Тут наверно лучше UPDATE использовать
<?  
mysql_query 
("UPDATE users set img ='$name' WHERE login='$login'"); 
?>

  Ответить  
 
 автор: uvajs   (13.06.2011 в 22:23)   письмо автору
 
   для: Добрый кот   (13.06.2011 в 21:26)
 

>А к какому пользователю добавется картинка, если их (пользователей) скажем 100?
Если человек хочет добавить свое фото, то мы знаем, что он точно зарегистрирован.
а переменная $login я просто присвоил из $_SESSION['login']; чтобы обновилось соответствующее поле.
Разве UPDATE не удалить существующее фото? т.е. не перепишет путь новой фотки удаляя старый?

  Ответить  
 
 автор: Добрый кот   (14.06.2011 в 00:00)   письмо автору
 
   для: uvajs   (13.06.2011 в 22:23)
 

>Если человек хочет добавить свое фото, то мы знаем, что он точно зарегистрирован.
Все равно не ясен один момент. Если скажем пользователь зареген, авторизован и добавляет фотку идет мускул запрос. если взять запрос типа
mysql_query ("INSERT INTO users (img) VALUES('$name')"); 
я не пойму к какому пользователю добавится сия картинка. Ведь надо указать либо id либо login пользователя, чтобы картинка добавлялась именно ему
><?
>mysql_query ("INSERT INTO users (img) VALUES('$name') WHERE login='$login'");
>?>
>а переменная $login я просто присвоил из $_SESSION['login']; чтобы обновилось соответствующее поле.
тут у Вас WHERE не обновляет поле login.
>Разве UPDATE не удалить существующее фото?
Да, UPDATE заменяет (обновляет) значение поля.
>т.е. не перепишет путь новой фотки удаляя старый?
Тут вообще не понятно, поле у Вас разве не пустое?

  Ответить  
 
 автор: uvajs   (14.06.2011 в 12:12)   письмо автору
 
   для: Добрый кот   (14.06.2011 в 00:00)
 

Вот к примеру аккаунт в одноклассниках:
http://s11.radikal.ru/i183/1106/60/27cf57af0db8.jpg
Там можно добавлять фотографии.
Я имею в виду чтобы пользователь смог добавлять в свой аккаунт свои фотографии, а не аватар.
Допустим вчера добавил 2 фотографии, а сегодня еще одну хочет.
Так где и как хранить их пути?

  Ответить  
 
 автор: uvajs   (14.06.2011 в 15:28)   письмо автору
 
   для: uvajs   (14.06.2011 в 12:12)
 

Мой вопрос не потянет что ли? уж не верится что не знают здешние программисты!

  Ответить  
 
 автор: cheops   (14.06.2011 в 15:44)   письмо автору
 
   для: uvajs   (14.06.2011 в 12:12)
 

Не понятно, что вызывает сложности. Обычно под такие задачи выделяют отдельную таблицу, где хранят пути к фотографиям пользователей: одна запись - одна фотография. В таблице предусматривается поле, позволяющее различать фотографии разных пользователей.

  Ответить  
 
 автор: Добрый кот   (14.06.2011 в 19:20)   письмо автору
 
   для: uvajs   (14.06.2011 в 12:12)
 

Тогда надо как пишет cheops, добавлять фотографии в отдельную таблицу.
Можно к примеру создать таблицу с двумя полями: в одном храните путь к картинке, в другом-ид или логин пользователя добавившего картинку.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования