在不同的列中显示帖子
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
以匹配您的代码。
下面是从数据库中获取博客并在屏幕上单列显示的代码,我想在多列中显示博客可能是三个,每列显示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
以匹配您的代码。