使用 php 对 MySql 的输出进行排序
Posted
技术标签:
【中文标题】使用 php 对 MySql 的输出进行排序【英文标题】:Sort output from MySql with php 【发布时间】:2016-10-28 11:12:29 【问题描述】:我尝试从排序的 mysql db 返回表值 .我设法正确连接和更新表格, 在同一页面上,我希望将表格返回为 html 作为聊天历史记录。只是无法让消息按时间排序。 2) 有没有更好的方法将带有 ajax 和 jquery 的输出返回到最后一个 div id 消息?
<?php
$servername = "localhost";
$username = "";
$password = "";
$dbname = "";
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn)
die("Connection failed: " . mysqli_connect_error());
$sender = $_POST["sender"];
$receiver = $_POST["receiver"];
$message = $_POST["message"];
date_default_timezone_set('Asia/Tel_Aviv');
$create_date = date('Y-m-d H:i:s');
//Not sure this is right way to update the date.
if ($create_date != $update_date)
$date == $update_date;
$sql = "INSERT INTO messages (sender, receiver, message, create_date) VALUES ('$sender', '$receiver', '$message', '$create_date')";
if (mysqli_query($conn, $sql))
echo "";
else
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
// Check connection
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
$sql = "SELECT id, sender, receiver, message, create_date FROM messages";
$result = $conn->query($sql);
if ($result->num_rows > 0)
// output data of each row
while($row = $result->fetch_assoc())
echo $row["id"]. ") " . $row["sender"]. " to " . $row["receiver"]. " : " . $row["message"]. " / " . $row["create_date"]."<br>";
else
echo "0 results";
$conn->close();
?>
HTML
<form action="" method="POST" enctype="multipart/form-data">
<p>name of sender:
<input class="input" name="sender" id="sender" value="" size="13"
maxlength="13" dir="ltr" autocomplete="on" type="text" required><br>
<p>name of receiver:
<input class="input" name="receiver" id="receiver" value="" size="13"
maxlength="13" dir="ltr" autocomplete="on" type="text" required><br>
<p>Message: <br>
<textarea name="message" id="message" value="" rows="5" cols="30" dir="ltr" required></textarea><br>
<input value="Submit" name="button" onsubmit="return checkForm(this);" border="0" type="submit" align="absmiddle"></p>
</form>
<P>MESSAGES</P>
<div id="messages">
<?php include_once("action.php") ?>
javascript 验证 (不能工作) 我在 html5 中使用了 required
function checkForm(form)
if($('#sender').val() == '')
alert("Sender name can not be left blank");
form.sender.focus();
return false;
if($('#receiver').val() == '')
alert("Receiver name can not be left blank");
form.receiver.focus();
return false;
if($('#message').val() == '')
alert("Message input can not be left blank");
form.message.focus();
return false;
return true;
【问题讨论】:
让 MySQL 为您订购:$sql = "SELECT id, sender, receiver, message, create_date FROM messages ORDER BY create_date"; 我在插入之后添加了这个命令,为什么似乎不起作用 您的源代码中有此选择,但没有 ORDER BY create_date。您只需在 SELECT 的末尾添加 ORDER BY create_date @BerndBuffen 我修复了它已排序。太棒了! 你认为你也可以帮助解决jquery问题(2)吗? 【参考方案1】:也许您可以将选择查询更改为
SELECT id, sender, receiver, message, create_date FROM messages ORDER BY create_date
【讨论】:
以上是关于使用 php 对 MySql 的输出进行排序的主要内容,如果未能解决你的问题,请参考以下文章
当查询依赖于仅使用 PHP 的 $_GET 时,如何对表输出进行排序?