За последние 24 часа нас посетили 20087 программистов и 1002 робота. Сейчас ищут 305 программистов ...

цикл while + оператор if-else

Тема в разделе "PHP для новичков", создана пользователем water1, 27 фев 2017.

  1. water1

    water1 Новичок

    С нами с:
    27 фев 2017
    Сообщения:
    5
    Симпатии:
    0
    Не могу заставить чтобы выполнялось условие или в операторе if или в else

    щас выполняеться и там и там

    а хочу заставить если $i <=5
    то вывести этот блок с записями
    а если условие не совподает то выполнить вывод другово блока

    вот сам код


    PHP:
    1.              <div class="dishes-list-wrapper row">
    2.  
    3.                                                     <?php if (have_rows('block_2_2')): ?>
    4.                                                         <?php
    5.                                                      
    6.                                                         $i = 0;
    7.                                                         while (have_rows('block_2_2')) : the_row();
    8. {
    9.  
    10.                                                             if ($i <= 4) {
    11.  
    12.  
    13.                                                                 //var_dump($i);
    14.                                                                 echo '<div class="dishes-list left col-sm-12">
    15.                                                                        <div class="dishes-item">
    16.       <div class="dotted">
    17.          <span class="dish-id padr5">' . get_sub_field('block_2_2_1') . '</span>
    18.           <span class="dish-title">' . get_sub_field('block_2_2_2') . '</span>
    19.                <div class="dish-price inline pull-right">' . get_sub_field('block_2_2_4') . '</div>
    20.             </div>
    21.    <div class="dish-description">
    22.     <div class="dish-consist grey inline">' . get_sub_field('block_2_2_3') . '</div>
    23.   <div class="dish-weight brown inline pull-right"></div>
    24.       </div>
    25.              </div>
    26.                </div>';
    27.                                                              
    28.                                                                
    29.                                                             } else {
    30.                                                                   var_dump ($i);
    31.                                                                 echo '<div class="dishes-list left col-sm-12 col-md-6">
    32.                                                        <div class="dishes-item">
    33.                                                            <div class="dotted">
    34.                                                                <span class="dish-id padr5">' . get_sub_field('block_2_2_1') . '</span>
    35.                                                                <span class="dish-title">' . get_sub_field('block_2_2_2') . '</span>
    36.                                                                <div class="dish-price inline pull-right">' . get_sub_field('block_2_2_4') . '</div>
    37.                                                            </div>
    38.                                                            <div class="dish-description">
    39.                                                                <div class="dish-consist grey inline">' . get_sub_field('block_2_2_3') . '</div>
    40.                                                                <div class="dish-weight brown inline pull-right"></div>
    41.                                                            </div>
    42.                                                        </div>
    43.                                                    </div>';
    44.                                                             }
    45.                                                          $i++;
    46. }
    47.                                                         endwhile;
    48.                                                      
    49.                                                         ?>
    50.                                                     <?php endif; ?>
    51.  
    52.                                                 </div>
    сайт где можно посмотреть

    [удалено, т.к. там не видно, где смотреть]

    в блоке меню
     
    #1 water1, 27 фев 2017
    Последнее редактирование модератором: 27 фев 2017
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    не бывает такого

    покажи, плс, где смотреть, скриншоты и значение $i
     
  3. water1

    water1 Новичок

    С нами с:
    27 фев 2017
    Сообщения:
    5
    Симпатии:
    0
    значение $i=0
    в коде предоставлен весь код цикла
     

    Вложения:

  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    оно очевидно не ноль, т.к. вардамп показал, что $i у вас 5

    перепишите на нормальные скобочки, будет сразу понятно, что у вас $i по единичке растёт раз за разом в цикле.
     
  5. water1

    water1 Новичок

    С нами с:
    27 фев 2017
    Сообщения:
    5
    Симпатии:
    0
    ну так оно и должно расти
    но если в цикле уже 6 записей насколько я понимаю условие if уже не должно сработать
    а сработать в условии else ?
    а у меня получаеться срабатывает цикл во всех условиях
     
    #5 water1, 27 фев 2017
    Последнее редактирование: 27 фев 2017
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    у вас условие находится ВНУТРИ цикла, и дёргается КАЖДЫЙ раз при проходе по циклу.

    Если хотите, чтобы условие вызывалось до цикла один раз - то цикл надо засунуть в нужный блок условия, а не наоборот.
     
  7. water1

    water1 Новичок

    С нами с:
    27 фев 2017
    Сообщения:
    5
    Симпатии:
    0
    Реализовал через
    функцию cout
    ответ нашол у вас же
    https://php.ru/manual/function.count.html
    и код получил на выходе вот такой

    PHP:
    1.  <div class="dishes-list-wrapper row">
    2.                                                     <?php if (have_rows('block-4_2')): ?>
    3.                                                         <?php
    4.                                                         while (have_rows('block-4_2')) : the_row();
    5.  
    6.  
    7.  
    8.                                                             $my_fields = get_field_object('block-4_2');
    9.                                                             $count = (count($my_fields['value'])); //считаем количество елементов
    10.                                                             //echo $count;
    11.  
    12.                                                             if ($count <= 5):
    13.                                                                 ?>
    14.                                                                
    15.                                                                 <div class="dishes-list left col-sm-12">
    16.                                                                     <div class="dishes-item">
    17.                                                                         <div class="dotted">
    18.                                                                             <span class="dish-id padr5"><?php echo get_sub_field('block-4_2_1'); ?></span>
    19.                                                                             <span class="dish-title"><?php echo get_sub_field('block-4_2_2'); ?></span>
    20.                                                                             <div class="dish-price inline pull-right"><?php echo get_sub_field('block-4_2_4'); ?></div>
    21.                                                                         </div>
    22.                                                                         <div class="dish-description">
    23.                                                                             <div class="dish-consist grey inline"><?php echo get_sub_field('block-4_2_3'); ?></div>
    24.                                                                             <div class="dish-weight brown inline pull-right"></div>
    25.                                                                         </div>
    26.                                                                     </div>
    27.                                                                 </div>
    28.         <?php else: ?>
    29.  
    30.  
    31.                                                                 <div class="dishes-list left col-sm-12 col-md-6">
    32.                                                                     <div class="dishes-item">
    33.                                                                         <div class="dotted">
    34.                                                                             <span class="dish-id padr5"><?php echo get_sub_field('block-4_2_1'); ?></span>
    35.                                                                             <span class="dish-title"><?php echo get_sub_field('block-4_2_2'); ?></span>
    36.                                                                             <div class="dish-price inline pull-right"><?php echo get_sub_field('block-4_2_4'); ?></div>
    37.                                                                         </div>
    38.                                                                         <div class="dish-description">
    39.                                                                             <div class="dish-consist grey inline"><?php echo get_sub_field('block-4_2_3') ?></div>
    40.                                                                             <div class="dish-weight brown inline pull-right"></div>
    41.                                                                         </div>
    42.                                                                     </div>
    43.                                                                 </div>
    44.  
    45.         <?php endif; ?>
    46.                                                         <?php endwhile; ?>
    47.                                                     <?php endif; ?>
    48.                                                 </div>
    --- Добавлено ---
    мне надо чтоб условие всегда проверялось именно в цикле
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    я этот код вообще прочесть не могу, но мне так кажется, что в цикле вы одно и то же извлекаете и проверяете.
     
  9. water1

    water1 Новичок

    С нами с:
    27 фев 2017
    Сообщения:
    5
    Симпатии:
    0
    все уже работает все получилось