2012-05-24 5 views
0

Это, наверное, глупая добыча, которую я пропускаю, но я надеюсь, что один из вас может мне помочь! У меня есть петля для перечисления сетки продуктов в моей БД.ForEach multiply issue

Пока все хорошо, все отображается примерно ОК, за исключением этой маленькой проблемы.

В списке я делаю следующее:

<ul> 
    <?php $i=0; foreach ($products as $product) : $i++; ?> 
    <li <?php 
      if(($i%4) ==0){ 

       echo 'class="last"'; 
       } elseif($i%2==0){ 
        echo 'class="second"'; 
       } 
      ?>> 

// Then I've got the image thumbnail etc coming in.... 

Все выглядит хорошо для последней строки, за исключением ...

Так, например, если у меня есть 8 продуктов ... первый 7 будет отображаться на странице правильно, но тогда есть пробел в конце, где восьмой продукт перемещается на следующую страницу.

Сначала я думал, что это ширина CSS или что-то такое, но это не так. Даже если у меня есть 20 продуктов ... всегда последняя строка показывает только 3 и ставит последний продукт на следующей странице.

Любые идеи кто-нибудь?

Приветствия M

+0

Можете ли вы предоставить ссылку, или по крайней мере HTML-разметку, создается? – Tim

+0

звучит скорее как CSS, чем PHP - вы уверены, что «class =« last »» верен и правилен? – Laurence

+0

Запустите инкремент в 1 вместо 0, так что '$ i = 1;' –

ответ

1
<ul> 
    <?php $i=count($products); ?> 
    <li 
     <?php 
      if(($i%4) ==0){ 
        echo 'class="last"'; 
       } elseif($i%2==0){ 
        echo 'class="second"'; 
       } 
     ?>> 

Давайте попробуем ..

+0

Вероятно, это поможет, если он действительно зациклится. – damianb

+0

Хия, Спасибо за ваш ответ. Нет, что не работает, некоторая синтаксическая ошибка. Вот эта страница. http://www.kochtail.de/index.php?route=product/productall – missmonkee

+0

государство ур ошибка чувак ... – Learner