php - 如何将 SQL 查询 ORDER BY ID DESC 生成为超过 1 个 div

标签 php html mysql sql

我一直忙于博客系统,目前正在尝试将 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/

相关文章:

php - 找不到类 'Datatables' Laravel 5.4

php - 未定义 xmlDocumentElement

javascript - Jquery - 如何为多个元素绑定(bind)单击事件?

几秒钟后Javascript调整图像大小

javascript - 在 Javascript 循环中显示 PHP 变量

mysql - 使用 Ruby on Rails 进行 count_at_date

php - 使用 PHP 将图像路径从数据库传递到 HTML 图像源

javascript - 每个 session 模态显示一次

带有 DEFAULT NULL 的 MySQL 列 - 文体选择,还是?

mySql - 为批量采购建模价格折扣表的最佳方式 - 递归?