在不同的列中显示帖子

Display posts in different columns

下面是从数据库中获取博客并在屏幕上单列显示的代码,我想在多列中显示博客可能是三个,每列显示10个博客,按它们的id排序,那么如何做那。如果在这里回答太长,也许提及任何易于使用的方法都可以帮助我。

这就是我从数据库调用帖子的方式:

$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>";    

使用下面的代码可以很容易地随时更改列数。

<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 行开始于循环之外。然后这一行 echo "</tr><tr>"; 结束您的 table 行并在每次达到所需列数时开始一个新行。在上面的代码中它是 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 以匹配您的代码。