Задать вопрос
slovoblydie
@slovoblydie
it / web / photography

Вывод из БД заданного количества позиций в строке?

Доброго!
Есть простой код:
$price = $dbh->prepare('SELECT * FROM `price`');
  $price->execute(array());
  while ($p = $price->fetch(PDO::FETCH_LAZY))
  {
?>
<div>
<? echo $p['name']; ?>. <? echo $p['name']; ?>
</div>
<?php
}

На выходе соответственно получаем:
1. name1
2. name2
3. name3
4. name4
.....

Каким образом сделать вывод к примеру так:
1. name1 2. name2 3. name3
4. name4 5. name5 6. name6


Т.е. нужно сделать вывод в строке по три строки из БД... А то что-то гуглю, гуглю, ничего путного не нахожу.
Заранее спасибо!
  • Вопрос задан
  • 147 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@sitev_ru
sitev.ru - мой блог ...
$index = 0;
while ($p = $price->fetch(PDO::FETCH_LAZY)) {
  echo $p['name'];
  $index++;
  if ($index % 3 == 0) echo '<br>';
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@VitGun
Если я правильно понял вопрос, то как-то так:

$price = $dbh->prepare('SELECT * FROM `price`');
  $price->execute(array());
  $i=0;
  $str = "";
  while ($p = $price->fetch(PDO::FETCH_LAZY))
  {
?>
<div>
<?
   $str = $str. $p['name'].' ,';
   if ($i % 3 == 0)
  {
    echo $str;
    $str = "";
  }
    $i++;
?>
</div>
<?php
}
Ответ написан
Комментировать
@9ikopb
$price = $dbh->prepare('SELECT * FROM `price`');
  $price->execute(array());
  $maxcount = 3
  $count = 0
  while ($p = $price->fetch(PDO::FETCH_LAZY))
  { $count = $count + 1;
?>
<div>
<? echo $p['name']; ?>. <? echo $p['name']; ?>
</div>
<?php
if ($count >= $maxcount) {
  $count = 0;
?><br /><?
}
}


Чего тут гуглить, если хтмл и логика в одном файле? Говнокодить надо!
Ответ написан
Комментировать
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
База данных выводит данные. Расставляет их на странице html.
хотите по 3 в ряд:
1. можно использовать bootstrap и дать в div class col-xs-4
2. Можно использовать строчные элементы, а не div и ввести в цикл счетчик, проверять его кратности 3-м и делать перенос
3. Можно через css используя float:left; для div и Псевдокласс :nth-of-type для задания float:none, для каждого четвертого
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы