簡體   English   中英

PHP mySQL按日期排序發布

[英]PHP mySQL Sort post by date

我正在嘗試創建一個網站,任何人都可以在不創建帳戶的情況下向其發布任何內容,只要它是純文本即可。 我的問題是因為每次我啟動網站並發布內容時。 它發送到底部,最舊的帖子在頂部,新的帖子發送到頂部。 我想在頂部看到新帖子。 通常,這是我第一次使用PHP,mySQL和數據庫,因此我的代碼可能看起來很糟糕。 告訴我是否需要更多信息/代碼。 感謝您的時間。

<?php
function setPosts($conn){
    if(isset($_POST['postSubmit'])){
        $pid = $_POST['pid'];
        $date = $_POST['date'];
        $message = $_POST['message'];

        $sql= "INSERT INTO post(pid, date ,message) VALUES ('$pid', '$date', '$message');";
        $result = mysqli_query($conn, $sql);
    }
}

function getPosts($conn){
    $sql = "SELECT * FROM post";
    $result = mysqli_query($conn, $sql);
    while($row = $result->fetch_assoc()){
        echo "<div class='post-box'>";
        echo $row['date']."<br>";
        echo nl2br($row['message'])."<br><br>";
        echo "</div>";
    }
}

您需要使用ODRER BY子句,如下所示:-

$sql = "SELECT * FROM post ORDER BY date DESC";

參考: -ODRER BY子句

注意:-您的插入代碼可用於SQL Injection 使用mysqli prepared statements來阻止它。

參考: -mysqli :: prepare

您需要將"ORDER BY"添加到"SELECT"以對其進行排序。

$sql = "SELECT * FROM post ORDER BY date DESC";

"DESC"在那里,因此新帖子將排在最前面。 如果我們希望將較舊的帖子放在最前面,我們將使用"ASC"

您需要按日期對mysql結果進行排序並以降序對其進行排序。

$sql = "SELECT * FROM post SORT BY date order BY DESC";
function getPosts($conn){
    $sql = "SELECT date,message FROM post ORDER BY date DESC";
    $result = mysqli_query($conn, $sql);
    while($row = $result->fetch_assoc()){
        echo "<div class='post-box'>";
        echo $row['date']."<br>";
        echo nl2br($row['message'])."<br><br>";
        echo "</div>";
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM