Как повторить каждую после 9-й итерации цикла? Первое эхо только насчитало 8 пунктов

Мой код ниже:

function portfolio_gallery() {
global $conn;
$query = $conn->query("SELECT codename, namegroup, features, title, showimage FROM portfolio ORDER BY id DESC");

if ($query->num_rows > 0) {
// output data of each row
echo '<div>';
$i = 0;
while($row = $query->fetch_assoc()) {
$i++;
if ($row["showimage"]) {

if($i % 9 == 0){
echo '</div><div>';
}

echo '<a class="imgpop" href="images/portfolio/large/'.$row["codename"].'.jpg" rel="'.$row["namegroup"].'" title="'.$row["title"].' - '.$row["features"].'"><img src="https://web-answers.ru/wp-content/uploads/2019/02/portfolio/thumb/'.$row["codename"].'.jpg" alt="'.$row["title"].'" width="348"/><span class="imgpop-caption">'.$row["title"].'</span></a>';
}

}
echo '</div>';
}
}

portfolio_gallery();

Я хотел повторить </div><div> для каждого после 9-го элемента цикла, но каждый раз, когда я выполняю код, первый эхо происходило только после 8 пунктов вместо 9, а остальное было каждое 9-е.

-2

Решение

Вы должны увеличить

$i

после

if($i % 9 == 0)
0

Другие решения

следуйте примеру синтаксиса я разработал его работу

    <?php
$j=0;
for($i=0;$i<=50;$i++)
{
if($j==9)
{

echo $j.'hioiiiiiii<br/>';  //echo "</div><div>";
$j=-1;
}
$j++;
}

?>
0

Пожалуйста, попробуйте это 🙂

<?php
function portfolio_gallery() {
global $conn;
$query = $conn->query("SELECT codename, namegroup, features, title, showimage FROM portfolio ORDER BY id DESC");

if ($query->num_rows > 0) {
// output data of each row
echo '<div>';
$i = 0;
while($row = $query->fetch_assoc()) {
if ($row["showimage"]) {

if($i % 9 == 0){
echo '</div><div>';
}

echo '<a class="imgpop" href="images/portfolio/large/'.$row["codename"].'.jpg" rel="'.$row["namegroup"].'" title="'.$row["title"].' - '.$row["features"].'"><img src="https://web-answers.ru/wp-content/uploads/2019/02/portfolio/thumb/'.$row["codename"].'.jpg" alt="'.$row["title"].'" width="348"/><span class="imgpop-caption">'.$row["title"].'</span></a>';
}
$i++;
}
echo '</div>';
}

}

0

объявите $ i = 1 и напишите $ i ++ в конце цикла while.

if ($query->num_rows > 0) {
// output data of each row
echo '<div>';
$i = 1; // declare $i = 1 here
while($row = $query->fetch_assoc()) {

if ($row["showimage"]) {
if($i % 9 == 1){ // 10 , 19 ,28
echo '</div><div>';
}
echo '<a class="imgpop" href="images/portfolio/large/'.$row["codename"].'.jpg" rel="'.$row["namegroup"].'" title="'.$row["title"].' - '.$row["features"].'"><img src="https://web-answers.ru/wp-content/uploads/2019/02/portfolio/thumb/'.$row["codename"].'.jpg" alt="'.$row["title"].'" width="348"/><span class="imgpop-caption">'.$row["title"].'</span></a>';
}
$i++; // increment at end of the loop
}
echo '</div>';
}
0

Я смог решить это, изменив условие:

Так что вместо: if($i % 9 == 0) {...}

Я использовал: if($i!=0 && $i % 9 == 0) {...}

А также размещение $i++ в конце цикла while.

0
По вопросам рекламы [email protected]