2017-06-14 39 views
1

我正在顯示帶有以下代碼的表記錄。記錄顯示的順序不正確(asc/desc)。顯示錶記錄按時間順序降序

// storing request (ie, get/post) global array to a variable 
$requestData= $_REQUEST; 


$columns = array( 
// datatable column index => database column name 
    0 =>'***', 
    1 => '***', 
    2=> '***', 
     3=> 'time', 
     4=> '***' 
); 

// getting total number records without any search 
$sql = "SELECT * "; 
$sql.=" FROM details where account_id=".$_SESSION['admin_id']; 

$query=mysqli_query($conn, $sql) or die("server_response.php: get details"); 
$totalData = mysqli_num_rows($query); 
$totalFiltered = $totalData; // when there is no search parameter then total number rows = total number filtered rows. 


$sql = "SELECT * "; 
$sql.=" FROM details where account_id=".$_SESSION['admin_id']; 
if(!empty($requestData['search']['value'])) { // if there is a search parameter, $requestData['search']['value'] contains search parameter 
    $sql.=" AND (*** LIKE '".$requestData['search']['value']."%' ";  
    $sql.=" OR *** LIKE '".$requestData['search']['value']."%' "; 
     $sql.=" OR *** LIKE '".$requestData['search']['value']."%' "; 
     $sql.=" OR time LIKE '".$requestData['search']['value']."%' "; 

    $sql.=" OR *** LIKE '".$requestData['search']['value']."%')"; 
} 
$query=mysqli_query($conn, $sql) or die("server_response.php: get details"); 
$totalFiltered = mysqli_num_rows($query); // when there is a search parameter then we have to modify total number filtered rows as per search result. 
$sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length']." "; 
/* $requestData['order'][0]['column'] contains colmun index, $requestData['dir'][0]['order'] contains order such as asc/desc */  
$query=mysqli_query($conn, $sql) or die("server_response.php: get details"); 

$data = array(); 
while($row=mysqli_fetch_array($query)) { // preparing an array 
    $nestedData=array(); 

    $nestedData[] = $row[""]; 
    $nestedData[] = $row[""]; 
    $nestedData[] = $row[""]; 
     $nestedData[] = $row["time"]; 
     $nestedData[] = $row[""]; 

    $data[] = $nestedData; 
} 



$json_data = array(
      "draw"   => intval($requestData['draw']), // for every request/draw by clientside , they send a number as a parameter, when they recieve a response/data they first check the draw number, so we are sending same number in draw. 
      "recordsTotal" => intval($totalData), // total number of records 
      "recordsFiltered" => intval($totalFiltered), // total number of records after searching, if there is no searching then totalFiltered = totalData 
      "data"   => $data // total data array 
      ); 

echo json_encode($json_data); // send data as json format 

?> 

我需要按時間降序顯示記錄。如何將記錄按降序排序?

+1

請添加日誌語句代碼顯示在參數應用後正在執行的最終查詢字符串,然後[編輯]您的問題向我們顯示查詢字符串。說到參數,[**不要將請求參數連接成一個SQL字符串!](https://xkcd.com/327/) – nnnnnn

回答

0

嘗試寫MySQL查詢的時間降序

SELECT something , something FROM mytable ORDER BY time DESC; 
+0

這在這種情況下不起作用。需要在這裏改變。 – priya

+0

你的查詢是否正在工作,你有輸出..?你想按時間降序排列輸出嗎? – Thiwanka

+0

是的,我出去了。只有記錄不是按順序排列的。希望按時間順序顯示記錄。 – priya

0

本在你的PHP嘗試訂購這將是有益的給你

$json = '[{"date": "2011-08-07", "name": "bob"},{"date": "2011-07-07", "name": "jones"},{"date": "2011-09-03", "name": "blair"},{"date": "2009-01-01", "name": "test"}]'; 
$arr = json_decode($json, true); 
echo 'Before Sorting <br>'; 
print_r($arr); 
function cmp($a, $b) 
{ 
    return strcmp($a['date'], $b['date']); 
} 
usort($arr, "cmp"); 
echo "<br><br> After Sorting <br>"; 
print_r($arr); 
+0

OP正試圖在SQL查詢中進行排序。 – nnnnnn