【问题标题】:Sort output from MySql with php使用 php 对 MySql 的输出进行排序
【发布时间】: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" height="20" required><br>
   <p>name of receiver: 
      <input class="input" name="receiver" id="receiver" value="" size="13"
     maxlength="13" dir="ltr" autocomplete="on" type="text" height="20" 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" alt="submit" 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)吗?

标签: javascript php jquery mysql mysqli


【解决方案1】:

也许您可以将选择查询更改为

SELECT id, sender, receiver, message, create_date FROM messages ORDER BY create_date 

【讨论】:

    猜你喜欢
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    相关资源
    最近更新 更多