[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как вывести переменное количество картинок?
Страницы: 1, 2
MrBrown
Здравствуйте!
Файлы картинок имеют вид:
1-01.jpg
1-02.jpg
1-03.jpg
2-01.jpg
2-02.jpg
2-03.jpg

До сих пор выводил по три картинки:
$next=0;
while ($next++<3)
{
echo '<p align = "center"><img src="files/'.$m.'_0'.$next.'.jpg" width="900" height="600"></p>';
}


А сейчас появилась необходимость выводить - какие-то по две, какие-то - по четыре или пять картинок. Например:
4-01.jpg
4-01.jpg или

2-01.jpg
2-02.jpg
2-03.jpg
2-04.jpg
2-05.jpg

Прошу помощи: как посчитать количество картинок с определенной $m, чтобы присвоить это число переменной $next ?

Спасибо всем откликнувшимся.
p.s познакомился с такой функцией:
echo count(scandir('files'));

но как использовать scandir применительно к моему случаю - ума не приложу.
Valick
Цитата (MrBrown @ 12.10.2015 - 09:41)
как посчитать количество картинок с определенной $m, чтобы присвоить это число переменной $next ?

в корне неверный подход, не надо ничего считать, надо просто грамотно организовывать данные, сформировать массив для вывода и воспользоваться функцией foreach
БД я так понимаю не используется?

_____________
Стимулятор ~yoomoney - 41001303250491
Kusss

$id = 2;
$d = opendir($dir);
while (false !== ($filename = readdir($d))) {
if ( $filename != "." and $filename != ".." and strpos($filename, $id.'-') !== false) {
echo '<br>'.$filename;
}
}

closedir ($d);

MrBrown
Kusss
Пока не получается. продолжаю извращаться...
Valick
Да, похоже, придется создавать БД.
kaww
MrBrown, если в именах файлов нет "пропусков", т.е., например, за 2-02.jpg всегда идет 2-03.jpg а за ним 2-04.jpg, то можно вариант типа такого:
$dir = '/some/dir';
$m = 2;
$i = 0;
while(file_exists($dir . '/' . $m . '_0' . (++$i) . '.jpg')) {
echo '<p align = "center"><img src="files/' . $m . '_0' . $i . '.jpg" width="900" height="600"></p>';
}
Kusss
kaww
file_exists($dir . '/' . $m . '_' . sprintf('%02s', (++$i) ) . '.jpg'))

а так прокатит, и почему нижнее подчеркивание, а не тире ?
kaww
Kusss
, так же сначала сделал, только %02d, но у ТСа именно нижнее подчеркивание, несмотря на то, что пример файла он привел через тире. Что касается 0, может у него там после 09 идет 010, 011. В общем цель не дать готовое решение а задать вектор в котором двигаться для получения результата.
MrBrown
Расшифровка картинок:

1-1-1_02 - это:
раздел - категория - изделие_номер снимка.
У меня так:

раздел: $m=$myrow['buy_part'];
категория: $n=$myrow['buy_cat'];
изделие: $lot=$myrow['lot'];
номера фотографий изделия следуют так: 01, 02, 03.....09, 10, 11, ...

Приложил к вопросу упрощенный код, да и сам же запутался :(

Вот реальный код:
$next=0;
while ($next++<3)
{
echo '<p align = "center"><img src="files/buy/'.$m.'-'.$n.'-'.$lot.'_0'.$next.'.jpg" width="900" height="600"></p>';
}


Кто может, помогите найти переменную $next в конкретной категории.
Razzwan
Если задача сформулирована так, что ее сложно понять, значит она сформулирована неверно. Верно сформулированная задача - гарант успеха. Не пытайтесь навязать придуманные вами методы решения. Формулируйте задачу как есть. Получите решения лучше.

_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
MrBrown
Razzwan
Всё правильно. Хотел, как понятнее, чтобы не загромождать пост лишним мусором, как оказалось, совсем не лишним, увы...

А как применить это:
SELECT COUNT(*)... LIKE...
где совпадением были бы переменные $m, $n, $lot ?
Valick
Цитата (MrBrown @ 12.10.2015 - 14:43)
А как применить это:

куда вы это хотите применить?

_____________
Стимулятор ~yoomoney - 41001303250491
MrBrown
Valick
Сюда же, чтобы на странице выводилось бы то количество картинок данной категории, какое есть в папке и обозначается "01", "02"...

________________________________

Разобрался!
Ошибка была здесь:
$dir='files/buy';
while(file_exists($dir . '/'.$m.'-'.$n.'-'.$lot.'_0' . (++$i) . '.jpg'))

Большое спасибо всем, принявшем участие в моей проблеме!
arbuzmaster
Насколько я понял цель не вывести переменное количество картинок, а вывести количество картинок которое соответствует определенному товару То есть например утюг - 5 фото, фотоаппарат -7 фото. Если это так, то можно для каждого товара например создавать папку и кидать туда соответствующие картинки, а затем читать папку на наличие файлов и выводить их в цикле. Просто из названия темы я понял только то что например в папке 10 фоток а нужно вывести то 5 то 6 то 1 то есть рандомное число фоток или картинок.

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
MrBrown
arbuzmaster
Спасибо, всё получилось! (см. мой предыдущий пост).
Отдельное спасибо kaww
Но, несмотря на этот (с вашей помощью) успех, все же сделаю БД, как советовал Valick
Всем удачи!
Kusss
MrBrown
твой код ограничен 9 картинками, поменяй на обсуждаемый выше.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.