使用 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 时,如何对表输出进行排序?

在Android中对Json输出进行排序

如何对多个 mysql foreach 数组进行排序并需要它们在 php 中保持一致?

从数据库输入后使用 PHP 对 HTML 表进行排序

php排序比mysql“order by”好吗?

PHP MySQL Order By