Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Хранение картинок
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Хранение картинок

Страниц (1): [1]
 

1. D1mOn - 26 Мая, 2008 - 07:26:49 - перейти к сообщению
Здарова всем! Вы видели на некоторых сайтах про картинки можно добавлять несколько картинок на сайт за раз. Смысл не в том. Картинок может быть разное количество. Вопрос в том как хранить путь к этим картинкам, ведь их кол-во постоянно разное.

Подскажите, плиз
2. RomAndry - 26 Мая, 2008 - 08:55:54 - перейти к сообщению
как вариант serialize unserialize
3. D1mOn - 26 Мая, 2008 - 14:48:50 - перейти к сообщению
Цитата:
serialize - генерирует хранимое представление значения.

Честно говоря, не понял! Могли бы Вы, уважаемый, объяснить на примере?
4. RomAndry - 26 Мая, 2008 - 15:05:38 - перейти к сообщению
1. собрать все имена
2. serialize
3. сохранить в базе
4. извлечь из базы
5. unserialize
5. Джур - 26 Мая, 2008 - 23:58:18 - перейти к сообщению
D1mOn пишет:
Честно говоря, не понял! Могли бы Вы, уважаемый, объяснить на примере?

внимательно посмотрите на код и вам все станет ясно... данные хреновины... пардон... функции превращают любые объекты и масивы втом числе в строчку, которую затем опять можно превратить в массив что вам в принципе и нужно
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $a[1]='one';
  4. $a[2]='two';
  5. $a[3]='tree';
  6. $t=serialize($a);
  7. unset($a);
  8. $b=unserialize($t);
  9. print_r($b);
  10.  
6. D1mOn - 28 Мая, 2008 - 07:43:32 - перейти к сообщению
А можно хранить адреса ко всем картинкам в одном поле? Вот так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $paths  = "1.jpg|2.jpg|5.jpg|7.jpg|9.jpg"; // картинки
  3. $pathar = explode("|", $paths); // разделяем
  4. ....
  5.  


А дальше как вывести все картинки на экран? Через цикл?
7. valenok - 29 Мая, 2008 - 08:57:09 - перейти к сообщению
Да.
8. D1mOn - 29 Мая, 2008 - 13:19:35 - перейти к сообщению
Сделал вот так:
PHP:
скопировать код в буфер обмена
  1. $paths  = "1.jpg|2.jpg|5.jpg"; // картинки
  2. $ar = explode("|", $paths); // разделяем
  3. for ($i=0; $i <= count($ar)-1; $i++)
  4. {
  5.   echo "<img src=\"$ar[$i]\" width=\"100\" height=\"100\">";
  6. }


Теперь новая проблема! Мне нужно где-то хранить ширину и высоту картинки. Желательно примерно вот так:
PHP:
скопировать код в буфер обмена
  1. $paths  = "1.jpg=250px_150px|2.jpg=350px_250px|5.jpg=100px_100px";
(первое это ширина, второе высота)
9. valenok - 29 Мая, 2008 - 13:58:14 - перейти к сообщению
Ну если желательно примерно вот так, то примерно вот так и храните.
10. D1mOn - 29 Мая, 2008 - 13:59:30 - перейти к сообщению
Ну а разделять это всё дело как?
11. valenok - 29 Мая, 2008 - 14:01:28 - перейти к сообщению
php.net/str
Функции работы со строками.
Для начала в голове прикиньте
как это всё разделять, поэтапно, потом для каждого этапа найдите подходящую функцию.
12. D1mOn - 29 Мая, 2008 - 14:02:45 - перейти к сообщению
А если попробовать циклом в цмкле?
13. valenok - 29 Мая, 2008 - 14:03:19 - перейти к сообщению
Попробуйте. Должите как получилось.
14. D1mOn - 29 Мая, 2008 - 14:37:30 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. $paths  = "1.jpg_250px=150px|2.jpg_350px=350px|5.jpg_150px=150px"; // картинки
  5.  
  6. $ar = explode("|", $paths); // разделяем имена файлов
  7.  
  8. for ($i=0; $i <= count($ar)-1; $i++)
  9. {
  10.   $ar2 = explode("_", $ar[$i]); // разделем имя файла и параметры
  11.   $ar3 = explode("=", $ar2[1]); // разделяем ширину и высоту
  12.   echo "file: ".$ar2[0].", width: ".$ar3[0].", height: ".$ar3[1]."<br>"; // выводим
  13. }
  14.  
  15. ?>
  16.  


Дальше сами пойметё как вывести картинки

 

Powered by ExBB FM 1.0 RC1