[英]Show data from Mysql Database using ORDER BY from One Column
在我的Mysql數據庫中,我有一列稱為notesUpdate
,在其中插入了許多帶有日期,用戶名和注釋的數據。 這樣notesUpdate
列將保存以下數據。
2014-07-23 04:01 AM alex : First Note{ASUSIBBIR}
2014-07-23 04:01 AM alex : Second Note{ASUSIBBIR}
2014-07-23 04:02 AM alex : Third Note{ASUSIBBIR}
2014-07-23 04:02 AM alex : Fourth Note{ASUSIBBIR}
注意: {ASUSIBBIR}是我正在使用的分隔符。
現在,我試圖按降序獲取這些數據。 我的意思是最后插入的數據應該在第一。 所以我正在使用以下查詢。 我知道這是不對的,但不知道如何通過降序顯示這些數據?
$query = mysql_query("SELECT notesUpdate FROM contact_details WHERE cdid = '$id' ORDER BY
notesUpdate DESC");
數據顯示應如下所示:
2014-07-23 04:02 AM alex : Fourth Note
2014-07-23 04:02 AM alex : Third Note
2014-07-23 04:01 AM alex : Second Note
2014-07-23 04:01 AM alex : First Note
我如何將數據插入數據庫
$username = $_SESSION['front_username'];
$contetn = $date;
$contetn .= " ";
$contetn .= "$username";
$contetn .= " : ";
$contetn .= mysql_real_escape_string(htmlspecialchars(trim($_POST['contentText'])));
$cdid = $_POST['cdid'];
$contetn .= "{ASUSIBBIR}"; // this is a separator
$query = mysql_query("UPDATE contact_details SET notesUpdate = CONCAT(notesUpdate,
'$contetn') WHERE cdid = '$cdid' LIMIT 1")
有什么幫助嗎?
更新:
這是將數據插入db的形式:
<table width="100" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><h2>Write your Notes</h2></td>
</tr>
<input type="hidden" value="<?php echo $id; ?>" name="cdid" id="cdid"/>
<tr>
<td><textarea name="contentText" id="contentText" cols="53" rows="5"></textarea></td>
</tr>
<tr><td> </td></tr>
<tr>
<td><input type="submit" value="Save" name="submit" class="submit" id="addNewNotes"/></td>
</tr>
</table>
這是Jquery的一部分:
$(document).ready(function() {
$('body').on('click', '#addNewNotes', function(e){
e.preventDefault();
var formData = new FormData($(this).parents('form')[0]);
var cid=$(this).parents('form:first').find('#cdid').val();
$("#loading-image").show();
$.ajax({
url: 'response.php',
type: 'POST',
xhr: function() {
var myXhr = $.ajaxSettings.xhr();
return myXhr;
},
success: function(data){
getDetails(cid);
$("#loading-image").hide(); //hide loading
$("#Notesboxsuccess").html(data).show();
},
// complete: function(){
// $("#loading-image").hide(); //hide loading here
//},
data: formData,
cache: false,
contentType: false,
processData: false
});
});
});
您可以像這樣將前19個字符轉換為日期時間對象
CAST(LEFT(notesUpdate, 19) as datetime)
所以像
SELECT
notesUpdate
FROM contact_details
ORDER BY
STR_TO_DATE(LEFT(notesUpdate, 19), '%Y-%m-%d %l:%i %p') DESC,
id DESC
注意:這不是建議的存儲數據的方法。您應該考慮更改它。這不符合規范化的標准。
查看演示
我建議選擇notesUpdate並將其拆分為一個數組,然后將其反轉並顯示:)但是,您應該考慮在databese中使用一些相關表來存儲更改歷史記錄。
$result = mysql_query("SELECT notesUpdate FROM contact_details WHERE cdid = '$id'");
$row = mysql_fetch_assoc($result);
$notesUpdateArray = explode('{ASUSIBBIR}', $row['notesUpdate']);
$notesUpdateReversedArray = array_reverse($notesUpdateArray);
var_dump($notesUpdateReversedArray);
如果您不將其作為字符串,則將其內爆
$notesUpdateReversed = implode('{ASUSIBBIR}', $notesUpdateReversedArray);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.