[英]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
來阻止它。
您需要將"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.