выдаёт нужный мне результат. Например, результат именно этого кода:
------------------------------
pic/4894.1.big.jpg
pic/4894.1.small.jpg
pic/4894.2.big.jpg
pic/4894.2.small.jpg
pic/4894.3.big.jpg
pic/4894.3.small.jpg
--------------------------------
Теперь вопрос как подсчитать количество файлов, для этого случая их 6.
И как имена этих файлов запомнить в массив:
На сайте поставил готовый форум phpBB. Уже года два всё прекрасно работает, но в последнее время ОЧЕНЬ много порно СПАМа. Какую можно поставить защиту?
Получаешь название картинки (ХХХ), дальше из каталога просто достаешь все файлы, в которых есть это самое название. Вродь была там одна функция, с помощью которой можно было это сделать...
логика может и прикольная Только здесь ты заставляешь цикл гонять 10 раз, а если, картинок, допустим 12? Можно, конечно выставить до 1000, но это же будет сильно тормозить... У меня вопрос, как подсчитать количество картинок, не ограничивая число итераций.
Интернет магазин. К каждому товару есть несколько картинок в формате 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 картинки). Это надо для формирования количества строк таблицы.
Поставим вопрос по-другому.
Для каждого товара есть какое-то количество картинок от XXXX.1.jpg до XXXX.n.jpg.
Как узнать чему равно n?
Можно использовать цикл на проверку существования файла, например while. Но какое придумать условие? Я так понимаю, что можно задать шаблон XXXX.*.jpg, но не получается у меня
Вот и запишите file_exist в цикле.
Может пока будете писать - появятся идеи что делать с file_exist. (Добавление)
p.s. Сколько конструкций циклов в php ?
Советую познакомиться со всеми
Мне известны только 3: while, do..while и for.
Я так понимаю, в моём случае подходят только while или do..while.
Но придумать условия не могу.
Я так понял 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-я картинка и в карточке товара тоже, чтобы отображались только те картинки, которые есть (если есть хотя бы одна). Если картинок нет, то в карточке товара первого столбца для картинок вообще бы небыло.
Как организовать поиск, если я не знаю сколько картинок? Для одного товара их может быть 20, а для другого - ни одной... file_exist можно запистить в цикле, но я не знаю до какого значения в цикле ставить счётчик.
Я бы сделал немного по другому:
есть таблица, в которой информация на все товары. И одна из ячеек - это ячейка с именами картинок. Каждая картинка разделяется каким-нибуть знаком (к примеру #).
Потом получаю эту ячейку и с помощью функции explode() получаю все картинки.
И тогда их просто вставляю в скрипт.
Я не понял, у тебя в одной ячейке несколько названий картинок, или каждая строка - отдельная картинка?
Каждая строка отдельная картинка - это первый столбец и во втором слолбце уже отдельная таблица на описаные, возраст, цена и т.д.
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
Интернет магазин. К каждому товару есть несколько картинок в формате 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 картинки). Это надо для формирования количества строк таблицы.
Когда в форме поиска я ввожу цену "от" и "до", то всё нормально - выводит мне список товара, удолетворяющий данному условию и страницы [1][2]....
Но когда я нажимаю на какую-нибудь из страниц: [1], [2] и т.д. мне браузер выдает ошибку следущего содержания:
-------------------------------- -------------------------------- -----------------
Notice: Undefined variable: sql in C:Program FilesApache GroupApache2htdocsmyshop05class. eshop.php on line 648
Warning: mysqli::query() [function.mysqli-query]: Empty query in C:Program FilesApache GroupApache2htdocsmyshop05class. eshop.php on line 648
-------------------------------- -------------------------------- ---------------------------
Если же я запускаю по отдельности только форму для поиска по цене, то есть вместо
Задача такая: на сайте есть форма поиска. Человек вводит в поле поиска артикул или часть артикула товара и ему необходимо предоставить список товара, в артикуле которого встречается то, что он ввел в поле поиска.
Из формы методом POST забирается то, что человек ввёл ($artorname) и передаётся на обработку скрипту find.php. find.php
На первый взгляд всё работает. Браузер мне выдаёт нужное количество товара, делит на правильное количество страниц, что-то типа:
товар 1
товар 2
.......
Страницы: [1][2][3]....
Но когда я нажимаю на 2, 3 и т. д. страницы, браузер мне сбрасывает фильтр, а высыпает весь товар из базы.
То есть, допустим, в базе 100 единиц товара, условию поиска удолетворяют 10. На странице выводим по 4 единицы товара. В итоге для начала получаем 25 страниц - всё отображается корректно: [1][2][3]....[25]. Когда щёлкаешь на каждую из страниц - всё правильно. После ввода условия отображаются [1][2][3] - это тоже всё хорошо. Но, когда щёлкаю на [2] или [3] получаю:
[1][2][3]....[25].