Покинул форум
Сообщений всего: 58
Дата рег-ции: Май 2007
Помог: -1 раз(а)
Интернет магазин. К каждому товару есть несколько картинок в формате XXXX.1.jpg, XXXX.2.jpg .... XXXX.n.jpg. То есть картинок максимум n штук, минимум - может ни одной небыть. В каталоге товара показывается картинка XXXX.1.jpg, а в карточке товара показываются все картинки ( от XXXX.1.jpg до XXXX.n.jpg). Если картинки XXXX.1.jpg на сервере нет, то вместо этой картинки картинка с надписью нет изображения (no.jpg).
Вопрос такой: как описать логику, чтобы скрипт если не находит картинку XXXX.1.jpg, подставлял в каталог картинку XXXX.2.jpg, если не находил, её, то XXXX.3.jpg и т.д. перебирал до n. И только если скрипт ненайдёт ни одной картинки с имененами от XXXX.1.jpg до XXXX.n.jpg, то подставлял кактинку no.jpg.
В карточке товара структура таблицы, где первый столбец - картинки, а второй описания и т.п. Как описать логику, чтобы скрипт подсчитавал, сколько есть картинок (например XXXX.1.jpg, XXXX.2.jpg = 2 картинки; XXXX.3.jpg = 1 картинка; XXXX.2.jpg, XXXX.7.jpg, XXXX.10.jpg = 3 картинки). Это надо для формирования количества строк таблицы.
Dastar
Отправлено: 17 Января, 2008 - 22:49:58
Частый гость
Покинул форум
Сообщений всего: 199
Дата рег-ции: Янв. 2008 Откуда: Израиль
Помог: -6 раз(а)
Я не понял, у тебя в одной ячейке несколько названий картинок, или каждая строка - отдельная картинка?
Для группы картинок к одному товару ХХХХ - одно имя, или изменяется от картинки к картинке?
----- Не знаешь - молчи.
Andrey
Отправлено: 17 Января, 2008 - 23:04:53
Новичок
Покинул форум
Сообщений всего: 58
Дата рег-ции: Май 2007
Помог: -1 раз(а)
Dastar пишет:
Я не понял, у тебя в одной ячейке несколько названий картинок, или каждая строка - отдельная картинка?
Каждая строка отдельная картинка - это первый столбец и во втором слолбце уже отдельная таблица на описаные, возраст, цена и т.д.
Dastar пишет:
Для группы картинок к одному товару ХХХХ - одно имя, или изменяется от картинки к картинке?
Товар XXXX. К нему картинки XXXX.1.jpg .... XXXX.n.jpg
Товар YYYY. К нему картинки, например, YYYY.3.jpg и YYYY.5.jpg
Товар ZZZZ. К нему картинки, например, ZZZZ.2.jpg, ZZZZ.5.jpg и ZZZZ.6.jpg
Dastar
Отправлено: 17 Января, 2008 - 23:16:42
Частый гость
Покинул форум
Сообщений всего: 199
Дата рег-ции: Янв. 2008 Откуда: Израиль
Помог: -6 раз(а)
Я бы сделал немного по другому:
есть таблица, в которой информация на все товары. И одна из ячеек - это ячейка с именами картинок. Каждая картинка разделяется каким-нибуть знаком (к примеру #).
Потом получаю эту ячейку и с помощью функции explode() получаю все картинки.
И тогда их просто вставляю в скрипт.
----- Не знаешь - молчи.
Andrey
Отправлено: 18 Января, 2008 - 00:48:39
Новичок
Покинул форум
Сообщений всего: 58
Дата рег-ции: Май 2007
Помог: -1 раз(а)
Dastar пишет:
Я бы сделал немного по другому:
есть таблица, в которой информация на все товары. И одна из ячеек - это ячейка с именами картинок. Каждая картинка разделяется каким-нибуть знаком (к примеру #).
Потом получаю эту ячейку и с помощью функции explode() получаю все картинки.
И тогда их просто вставляю в скрипт.
Не совсем представляю как это сделать...
OverNik
Отправлено: 18 Января, 2008 - 08:04:21
Частый гость
Покинул форум
Сообщений всего: 182
Дата рег-ции: Янв. 2008
Помог: 0 раз(а)
Я так понял 3 картинки это большая среднея и маленькая (розмеры) и хранятса они в базе вот таким вот чудом 1.jpg|2.jpg|3.jpg или |||.
Допустим переменая нашёй картинки будет $image[],
Вот тебе и логика
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Dastar пишет:
Я бы сделал немного по другому:
есть таблица, в которой информация на все товары. И одна из ячеек - это ячейка с именами картинок. Каждая картинка разделяется каким-нибуть знаком (к примеру #).
Не делайте так никогда. Это идет вразрез с принципами реляционных БД.
Для автора:
Советую Вам изменить структуру БД. И сделать отдельно таблицу, где будут храниться картинки в привязке к товарам. То есть, если есть таблица товаров:
goods(good_id, name,description, ...{и другие Ваши поля})
то разумно сделать таблицу:
goods_images(record_id,good_id, image_name)
Предположим, у Вас есть товар "A" и у него есть картинки A.1.jpg и A.2.jpg; у Вас так же есть товар "B" с картинками B.2.jpg, B.3.jpg, B.5.jpg и товар "C" без картинок.
Тогда это будет:
goods:
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
valenok
Отправлено: 18 Января, 2008 - 16:18:57
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Цитата:
... у, чтобы скрипт если не находит картинку XXXX.1.jpg, под ...
поиск и делайте.
file_exists
----- Truly yours, Sasha.
Andrey
Отправлено: 18 Января, 2008 - 16:41:06
Новичок
Покинул форум
Сообщений всего: 58
Дата рег-ции: Май 2007
Помог: -1 раз(а)
valenok пишет:
поиск и делайте. file_exists
Как организовать поиск, если я не знаю сколько картинок? Для одного товара их может быть 20, а для другого - ни одной... file_exist можно запистить в цикле, но я не знаю до какого значения в цикле ставить счётчик.
valenok
Отправлено: 18 Января, 2008 - 16:43:22
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Вот и запишите file_exist в цикле.
Может пока будете писать - появятся идеи что делать с file_exist. (Добавление)
p.s. Сколько конструкций циклов в php ?
Советую познакомиться со всеми
----- Truly yours, Sasha.
Andrey
Отправлено: 18 Января, 2008 - 23:53:41
Новичок
Покинул форум
Сообщений всего: 58
Дата рег-ции: Май 2007
Помог: -1 раз(а)
OverNik пишет:
Я так понял 3 картинки это большая среднея и маленькая (розмеры) и хранятса они в базе вот таким вот чудом 1.jpg|2.jpg|3.jpg или |||.
Нет, ты не так понял. Все три картинки - они одного размера. Вот ссылки с моего магазина:
1. Каталог товара http://www[dot]magazinigrushek[dot]ru/index.php?page=7
Здесь как видно для артикулов 5380 и 5416 поскольку нет картинки с именем 5380.1.jpg (арт. 5380) и 5416.1.jpg, то выдает no.jpg
Но если зайти в карточку товара, то опять 1-я картинка no.jpg, а вторая есть.
Соответственно, если на серваке не найдётся 1 и 2 картинки, а будет только третья, то в карточке товара будут две картинки no.jpg. Я же хочу, чтобы, допустим, если нет 1 и 2 картинок, то в каталоге товара была не no.jpg (как сейчас), а 3-я картинка и в карточке товара тоже, чтобы отображались только те картинки, которые есть (если есть хотя бы одна). Если картинок нет, то в карточке товара первого столбца для картинок вообще бы небыло.
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Вы не в том направлении думаете. file_exist !
----- Truly yours, Sasha.
EuGen
Отправлено: 19 Января, 2008 - 13:54:43
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
А что, вариант с минимальными переделками структуры БД слишком трудный?
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
valenok
Отправлено: 19 Января, 2008 - 14:06:04
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
EuGen пишет:
А что, вариант с минимальными переделками структуры БД слишком трудный?
А зачем записывать чтото в БД ?
----- Truly yours, Sasha.
EuGen
Отправлено: 19 Января, 2008 - 14:09:16
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Чтобы иметь более общую структуру и не быть привязанными к файлам XXX.1.jpg или как там. Если использовать простейшую таблицу БД с записями о картинках (их именах), то можно хранить хоть chupachups.jpg, хоть tarantella.jpg для одного и того же товара.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.