我一直忙于博客系统,目前正在尝试将 sql 数据按 id desc 顺序输出到不同的 div(列)中,例如最新的 3 个博客,其他较旧的博客必须按 id 顺序显示在页面上描述如下。 我希望有人能帮助我。
<?php
$postRow = $db->query("SELECT postID, postTitle, postDesc, postDate, imgBackground, imgNewspost FROM blog_posts WHERE postID = '$postID'");
?>
第一段代码,连接数据库正常。 页面顶部的前 3 列如下所示:
<a href="index.html" class="collink">
<div class="sub-col col">
<?php
try {
$stmt = $db->query('SELECT postID, postTitle, postDesc, postDate, imgBackground, imgNewspost FROM blog_posts WHERE postID ="7" ');
while($row = $stmt->fetch()){
echo "<img class='imgtopnews'src='".$row['imgNewspost']."'>";
echo '<div>';
echo '<h1><a href="viewpost.php?id='.$row['postID'].'">'.$row['postTitle'].'</a></h1>';
echo '<p>Gepost op '.date('jS M Y H:i:s', strtotime($row['postDate'])).'</p>';
echo '<p>'.$row['postDesc'].'</p>';
echo '<p><a href="viewpost.php?id='.$row['postID'].'">Lees verder</a></p>';
echo '</div>';
}
} catch(PDOException $e) {
echo $e->getMessage();
}
?>
</div>
</a>
最后但并非最不重要的一点是,所有较旧的博客都位于 3 栏下方的页面:
<?php
try {
$stmt = $db->query('SELECT postID, postTitle, postDesc, postDate, imgBackground, imgNewspost FROM blog_posts ORDER BY postID DESC');
while($row = $stmt->fetch()){
echo '<div class="nieuwscol">';
echo '<div class="newstitle"><p><a href="viewpost.php?id='.$row['postID'].'">'.$row['postTitle'].'</a></p></div>';
echo '<div class="newsdate"><p>Gepost op '.date('jS M Y H:i:s', strtotime($row['postDate'])).'</p></div>';
echo "<img class='imgnews'src='".$row['imgNewspost']."'>";
echo '<p>'.$row['postDesc'].'</p>';
echo '<p><a href="viewpost.php?id='.$row['postID'].'">Lees verder</a></p>';
echo '</div>';
}
} catch(PDOException $e) {
echo $e->getMessage();
}
?>
最佳答案
所以这就是我如何做你想做的事情:
我首先为博客即建立一个类文件(class.blog.php)
您需要扩展数据库连接类,我目前将其标记为 DBClass 以用于演示目的。您还需要require_once()
数据库连接文件的文件。
这是博客类:
class blog extends DBClass
{
public function __construct()
{
parent::__contruct();
}
public function getBlog()
{
$stmt = "SELECT count(*) FROM `blog_posts`";
$res = $this->prepare($stmt);
$res->execute();
$count = $res->fetchColumn();
if ($count > 0) {
$stmt = "SELECT * FROM `blog_posts` ORDER BY `postID` DESC";
$res = $this->prepare($stmt);
$res->execute();
while ($row = $res->fetch(PDO::FETCH_OBJ)) {
$rows[] = $row;
}
return $rows;
}
}
}
然后在博客文件中,您需要执行以下操作(此处是我的演示目的),我相信您将能够进行相应调整以适应:
require_once('class.blog.php');
$blog = new blog();
$blogInfo = $blog->getBlog();
foreach ($blogInfo as $row)
{
echo
"<table>
<tr>
<td>
$row->imgNewpost
</td>
</tr>
<tr>
<td>
<h1>
<a href='viewpost.php?id=$row->postID'>$row->postTitle</a>
</h1>
</td>
</tr>
</table>";
}
如果你想要这些作为 <div>
只需删除表格并回显 div 即可。
关于php - 如何将 SQL 查询 ORDER BY ID DESC 生成为超过 1 个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41238406/