строительные леса для столбцов начальной загрузки в циклах php while

Я пытаюсь представить мои строки sql в сетке начальной загрузки динамически

<div class="row>
<div class="col-md-3">sql row 1</div>
<div class="col-md-3">sql row 2</div>
<div class="col-md-3">sql row 3</div>
<div class="col-md-3">sql row 4</div>
</div>
<div class="row>
<div class="col-md-3">sql row 5</div>
<div class="col-md-3">sql row 6</div>
<div class="col-md-3">sql row 7</div>
<div class="col-md-3">sql row 8</div>
</div>

и у меня возникли проблемы с настройкой цикла while. что я сейчас делаю

<div class="row>
<div class="col-md-3">sql row 1</div>
<div class="col-md-3">sql row 2</div>
<div class="col-md-3">sql row 3</div>
<div class="col-md-3">sql row 4</div>
<div class="col-md-3">sql row 5</div>
<div class="col-md-3">sql row 6</div>
<div class="col-md-3">sql row 7</div>
<div class="col-md-3">sql row 8</div>
</div>

Как я могу настроить цикл для автоматического назначения четырех классов col-md-3 для каждой строки, а затем продолжить. Текущий код:

<div class="row">
while($row = $result->fetch_assoc())
{
$spons_amt = round($row["spons_amt"] + 500, 2);
echo '<div class="col-md-3">' . $spons_amt . '</div>'
}
mysqli_close($conn);
</div>

Я думаю, что мне нужно сделать, это

    <div class="row">
while($row = $result->fetch_assoc())
// count number of rows
{
//list 4 of these (to make a row)
$spons_amt = round($row["spons_amt"] + 500, 2);
echo '<div class="col-md-3">' . $spons_amt . '</div>'
}
// echo </div><div class="row"> between every set of 4
mysqli_close($conn);
</div>

Я иду об этом правильным путем? Как я мог завершить код?

0

Решение

Самое элегантное решение — использовать PHP array_chunk функция:

 foreach(array_chunk($entries, 4) as $entriesRow) {
echo '<div class="row">';
foreach ($entriesRow as $entry) {
echo "<div class='col-md-3'>$entry</div>";
}
echo '</div>';
}

(Предполагая, что вы извлекли все строки БД в массиве $ records.)

2

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

Попробуйте что-то вроде этого:

$n = 0;
echo '<div class="row">';
while($row = $result->fetch_assoc())
{
$spons_amt = round($row["spons_amt"] + 500, 2);
if($n%4 == && $n =! 0) {
echo '</div>';
echo '<div class="row">';
echo '<div class="col-md-3">' . $spons_amt . '</div>';
$n = 1;
} else {
echo '<div class="col-md-3">' . $spons_amt . '</div>';
$n++;
}
}
echo '</div>';
1

Нет необходимости во всей этой сложности. Bootstrap работает в сетке с 12 столбцами автоматически. Просто убедитесь, что вы зациклились и сделали размер столбца так, чтобы он равномерно делился на 12, например. Col-мкр-4.

В этом примере будет предоставлено 3 на строку автоматически, так как 12/4 = 3. Просто обновите, чтобы использовать ECHO, или что вам нужно, это просто пример базовой концепции.

<div class="row">
LOOPCODE
{
<div class="col-md-4">
DATA
</div>
}
</div>
0
По вопросам рекламы [email protected]