下面是一个从数据库中获取博客并在屏幕上显示单列的代码,我想在多列中显示博客可能是三列,每列显示按其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>";
Run Code Online (Sandbox Code Playgroud)
使用下面的代码可以很容易地随时更改列数。
<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
?>
Run Code Online (Sandbox Code Playgroud)
这将为您提供三列。
请注意,您的表行在循环之外开始。然后这一行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>
Run Code Online (Sandbox Code Playgroud)
当然,您可以按照通常的方式“包含”或“要求”您的连接文件,并$conn根据需要进行更改以匹配您的代码。