2016-04-09 2 views
-1

У меня проблема с приращением счетчика в одном из моих циклов while. Я просто хочу чередовать две ссылки на изображения, которые были извлечены в моей базе данных, но мой счетчик не увеличится, и я не уверен, почему кто-нибудь поможет?PHP counter increment in a while loop

while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
     $img_link = $row['Image']; 
     $img_link_alt = $row['Image_alt']; 
     $i = 0; 

     echo '<div class="col-xs-6 col-sm-3 placeholder">'; 
     $img = ($i % 2 == 0) ? $img_link : $img_link_alt; 

      echo $i; 
      //'?' . date("h:i:sa").' 
      echo '<img style="height:200px; border-radius:0%; width:300px;" src="screenshots/'. $img . '">';   
      echo '<h4>Screenshot</h4><span class="text-muted">Updated Screenshot of the Botting session: <b>' . $row['script_name'] .' </b></span>'; 
      echo '</div>';   
      $i++;   
     } 

Ive даже пытались объявить $ я вне цикла в то время и до сих пор ничего ..... любая помощь будет высоко ценится

+1

Вы переустанавливаете его на 0 в каждом цикле .... ($ i = 0;) – Lexib0y

+0

Удалить $ i = 0; в цикле while. Чуть выше ($ row ...), положите $ i = 0; Попробуйте другой вариант. Вместо того, чтобы увеличивать, а затем находить $ i% 2, просто выполните $ i = ($ i === 0)? 1: 0; Таким образом, каждый раз, когда вы идете в цикле, $ i изменится. – zedfoxus

+0

«Я даже попробовал объявить $ i за пределами цикла while и все равно ничего ..... любая помощь была бы очень оценена» извините, ребята, я попробовал это за пределами цикла while и все еще ничего ... –

ответ

0

шаг инициализации

$i 

:

$i=0 

За пределами цикла while, и это сработало. вы каждый раз пересматриваете

$i 

Переменная в вашем цикле while и счетчик не увеличиваются, исправьте. В качестве альтернативы можно использовать строки счетчика, как этот пример:

$count = $db->query("SELECT COUNT(id) FROM users")->fetchColumn(); 

echo $count; //Returns number of rows 

как в этом answer

0

Вы должны сбросить $ I вне цикла:

$i = 0; 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    $img_link = $row['Image']; 
    $img_link_alt = $row['Image_alt']; 
    echo '<div class="col-xs-6 col-sm-3 placeholder">'; 
    $img = ($i % 2 == 0) ? $img_link : $img_link_alt; 
     echo $i; 
     //'?' . date("h:i:sa").' 
     echo '<img style="height:200px; border-radius:0%; width:300px;" src="screenshots/'. $img . '">';   
     echo '<h4>Screenshot</h4><span class="text-muted">Updated Screenshot of the Botting session: <b>' . $row['script_name'] .' </b></span>'; 
     echo '</div>';   
     $i++;   
} 
+0

Ive даже попытался объявить $ i за пределами цикла while и по-прежнему ничего ..... любая помощь была бы очень оценена «извините, ребята, я попробовал это за пределами цикла while ничего .... –

+0

попробуйте напечатать $ row, чтобы увидеть, есть ли реальный результат. Я бы напечатал $ i, чтобы узнать, повторяется ли этот цикл по данным. Попробуйте поместить print_r ($ row); внутри цикла – bksi

1

Инициализировать $ I вне петля.

$i = 0; 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
     $img_link = $row['Image']; 
     $img_link_alt = $row['Image_alt']; 

     echo '<div class="col-xs-6 col-sm-3 placeholder">'; 
     $img = ($i % 2 == 0) ? $img_link : $img_link_alt; 

      echo $i; 
      //'?' . date("h:i:sa").' 
      echo '<img style="height:200px; border-radius:0%; width:300px;" src="screenshots/'. $img . '">';   
      echo '<h4>Screenshot</h4><span class="text-muted">Updated Screenshot of the Botting session: <b>' . $row['script_name'] .' </b></span>'; 
      echo '</div>';   
      $i++;   
     } 
0

Поместите переменную $i вне while блока, как это:

$i = 0; 

while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
     $img_link = $row['Image']; 
     $img_link_alt = $row['Image_alt']; 

     echo '<div class="col-xs-6 col-sm-3 placeholder">'; 
     $img = ($i % 2 == 0) ? $img_link : $img_link_alt; 

      echo $i; 
      //'?' . date("h:i:sa").' 
      echo '<img style="height:200px; border-radius:0%; width:300px;" src="screenshots/'. $img . '">';   
      echo '<h4>Screenshot</h4><span class="text-muted">Updated Screenshot of the Botting session: <b>' . $row['script_name'] .' </b></span>'; 
      echo '</div>';   
      $i++;   
     } 
+0

Ive даже попробовал объявить $ i за пределами цикла while и все равно ничего ..... любая помощь была бы очень оценена «извините, ребята, я пробовал ее за пределами цикла while и все еще ничего ... –

+0

сколько строк возвращается в' while 'цикл? – nekiala

+0

можете ли вы показать окончательный результат? – nekiala

0
$i = 0; 
while($i<5) { 
    $alternateVal = $i%2==0 ? "type1" : "type2"; 
    echo $alternateVal; 
    $i++; 
} 

Выше приведен пример обзор альтернативных значений.