PHP: <?php $l = 0; $counts = count($data); ?> <?php foreach ($data as $key => $value) { ?> <div class="news"> <div class="row"> <?php for( $i=0; $i < $counts; $i++) { echo '<div class="r_'. ($i%2==0?'1':'2') .'"> ';?> <div class="image"><img alt="" src="<?php echo $value->image; ?>" /></div> <div class="text"><?php echo $value->intro_text; ?></div> <div class="autor"><?php echo $value->author; ?></div> <?php echo '</div> ';}?> </div> </div> <?php $l++; ?> <?php } ?> <?php } ?> пробуйте так --- Добавлено --- а цикл фор должен быть закомментирован?
PHP: if (!empty($data)) { $i = 0; foreach ($data as $key => $value) { echo ' <div class="news"> <div class="row"> <div class="r_'. ( $i%2 == 0 ? '1' : '2' ) .'"> <div class="image"><img alt="" src="' . $value->image . '" /></div> <div class="text">' . $value->intro_text . '</div> <div class="autor">' . $value->author . '</div> </div> </div> </div>'; $i++; } } по идее этот код должен выводить все правильно)) Вы посмотрите на объект на свой, который Вы в цикле проходите.. может там что то не правильно
так же 4 новости, 2 третьих и 2 четвертых. По сути тут есть же foreach то for наверно не нужен. Хотя я могу очень ошибаться. Просто тут есть еще переменная $key но в коде дальше она не упоминается, видимо она тоже где-то должна принимать участие...
в данном случае key не нужна.. можно ее убрать из foreach)) проверяйте входящий объект.. может в нем проблема.. цикл должен выводить все по очереди.
что содержит массив $data и как он устроен? имеется в виду что в индексе и что в значении? --- Добавлено --- @swear запустите у себя этот код PHP: <?php foreach ($data as $key => $value) { echo " $key _ $value <br>"; } ?> и покажите что в итоге выдаст браузер
все гениальное просто. помог добрый человек. в папке models стояла строчка $this->items_per_page = 2; вот и все
если вот это поставить без всего со старыми настройками то просто пустоту показывает, ничего на странице нет
в общем конечный код i++ внизу стоит чтобы классы чередовались, если ее не ставить то класс будет только 1 PHP: <?php if (!empty($data)) { ?> <?php $i = 0; ?> <div class="news"> <div class="row"> <?php foreach ($data as $key => $value) { ?> <?php { echo '<div class="r_'. ($i%2==0?'1':'2') .'"> ';?> <div class="image"><img alt="" src="<?php echo $value->image; ?>" /></div> <div class="text"><?php echo $value->intro_text; ?></div> <div class="autor"><?php echo $value->author; ?></div> <?php echo '</div> ';}?> <?php $i++; ?> <?php } ?> </div> </div> <?php } ?> Код рабочий, но чтобы не загружать страницу большим кол-ом новостей внизу еще надо добавить код для пагинации, либо сделать кнопку, по которой будут подгружаться остальные новости
в таком варианте, да, согласен, но был код где еще присутствовал цикл фор, правда он был закомментирован, и непонятно с какой целью, или того что он должен стоять, а с ним код не правильно работает, или просто он там не нужен. я предположил что он нужен и обратил внимание на то что используется снова переменная $i которая уже занята циклом foreach. А в конечном итоге дало даже не в цикле оказалось! надеюсь с этим вопросов не возникнет
здесь for не нужен, т.к. цикл для перебора массива есть foreach, i в цикле массива не используется она нужна для подсчета классов, в конечном итоге там надо было еще добавить кнопочку и все идеально стало. там стояло ограницение как раз для кнопки, т.е. выводилось 2 новости при нажатии на кнопку подгружались еще 2 новости и т.д.
вот как рас там и нудно уже использовать тогда другую переменную, конечно если там-это внутри цикла foreach. если за пределами foreach то можно и $i использовать --- Добавлено ---
PHP: <?php foreach ($data as $key => $value) { ?> <?php { echo '<div class="r_'. ($i%2==0?'1':'2') .'"> ';?> <div class="image"><img alt="" src="<?php echo $value->image; ?>" /></div> <div class="text"><?php echo $value->intro_text; ?></div> <div class="autor"><?php echo $value->author; ?></div> <?php echo '</div> ';}?> <?php $i++; ?> <?php } ?> тут как раз i в foreach стоит и все работает хорошо
@swear потому что в foreach нет цикла фор, а там стояло ограничение для кнопки! где там? может я неправильно понял, но я решил что там -это в цикле фор, который стоит внутри цикла foreach. --- Добавлено --- PHP: [LIST=1] [*]<?php if (!empty($data)) { ?> [*] <?php [*] $i = 0; [*] $counts = count($data); [*] ?> [*] <?php foreach ($data as $key => $value) { ?> [*] <div class="news"> [*] <div class="row"> [*] <?php for( $i=0; $i < $counts; $i++) [*] {echo '<div class="r_'. ($i%2==0?'1':'2') .'"> ';?> [*] <div class="image"><img alt="" src="<?php echo $value->image; ?>" /></div> [*] <div class="text"><?php echo $value->intro_text; ?></div> [*] <div class="autor"><?php echo $value->author; ?></div> [*] <?php echo '</div> '; }?> [*] </div> [*] </div> [*] <?php } ?> [*]<?php } ?> [/LIST]
"Там" это во фреймворке, на котором сайт сделан. $this->items_per_page = 2; Потом когда кнопку поставила все заработало. Просто первый раз с этим столкнулась.