Отображать сообщения в разных столбцах [дублировать]


На этот вопрос уже есть ответ здесь:

Ниже приведен код, который получает блоги из базы данных и отображает их в одном столбце на экране, я хочу, чтобы блоги отображались в нескольких столбцах, их может быть три, в каждом столбце отображается 10 блогов, упорядоченных по их идентификатор, так как это сделать. Если здесь слишком долго отвечать, возможно, мне поможет упоминание любого простого в использовании метода.

Вот как я называю сообщения из бд:

$query = ("SELECT blogs_id, title, body, posted_by,  category FROM blogs INNER JOIN 
categories ON categories.category_id=blogs.category_id ORDER BY blogs_id desc LIMIT 10");
foreach($db->query($query)as $row){
$blogs_id = $row['blogs_id'];
$title = $row['title'];
$body = $row['body']; 
$posted_by = $row['posted_by'];   
}
echo "<h2>$title</h2>
      <p>$body</p>";    
Author: Kuya, 2015-09-30

1 answers

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

<tr>
<?php do { //horizontal looper?>
          <td><div><?php echo $row['title']; ?></div>
          <div><?php echo $row['body']; ?></div>
          <div style="height:20px;"></div></td>
          <?php
$row = $query->fetch(PDO::FETCH_ASSOC);
if (!isset($nested_List)) {
  $nested_List= 1;
 }
 if (isset($row) && is_array($row) && $nested_List++%3==0) {
   echo "</tr><tr>";
 }
} while ($row); //end horizontal looper 
?>

Это даст вам три столбца.

Обратите внимание, что строка вашей таблицы начинается вне цикла. Затем эта строка echo "</tr><tr>"; завершает строку таблицы и начинает новую каждый раз, когда достигнуто количество желаемых столбцов. В приведенном выше коде это 3.

Чтобы изменить количество столбцов, просто измените $nested_List++%3==0 на $nested_List++%5==0, и у вас будет 5 столбцов.

Счастливое кодирование !

РЕДАКТИРОВАТЬ

Разместите что-то похожее на это в вверху вашей страницы выше <doctype><html><head>

Все вместе это должно выглядеть примерно так...

<?php
$host = 'localhost'; $db = 'database_name'; $user = 'database_user'; $pw = 'database_password';
$conn = new PDO('mysql:host='.$host.';dbname='.$db.';charset=utf8', $user, $pw);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "SELECT blogs_id, title, body, posted_by,  category FROM blogs INNER JOIN categories ON categories.category_id=blogs.category_id ORDER BY blogs_id desc LIMIT 10";
$query = $conn->prepare($sql);
$query->execute();
$row = $query->fetch(PDO::FETCH_ASSOC);
$totalRows = $query->rowCount();
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<table cellpadding="5" cellspacing="0" border="0">
<tr>
<?php do { //horizontal looper?>
          <td><div><?php echo $row['title']; ?></div>
          <div><?php echo $row['body']; ?></div>
          <div style="height:20px;"></div></td>
          <?php
$row = $query->fetch(PDO::FETCH_ASSOC);
if (!isset($nested_List)) {
  $nested_List= 1;
 }
 if (isset($row) && is_array($row) && $nested_List++%3==0) {
   echo "</tr><tr>";
 }
} while ($row); //end horizontal looper 
?>
</table>
</body>
</html>

Конечно, вы можете "включить" или "потребовать" свой файл подключения обычным способом и изменить $conn, чтобы он соответствовал вашему коду, если это необходимо.

 0
Author: Kuya, 2015-10-12 11:34:23