显示不同列中的帖子

时间:2015-09-30 08:41:18

标签: php pdo blogs posts

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

这就是我从db中调用帖子的方式:

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

1 个答案:

答案 0 :(得分: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 
?>

这将为您提供三列。

请注意,您的表行在循环之外开始。然后,此行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以匹配您的代码。