php
  • mysql
  • sql
  • 2017-09-24 89 views 0 likes 
    0

    當我輸入車輛ID和日期時,必須使用車輛ID和日期對記錄進行排序,但它不會從日期排序,而只會使用車輛ID排序。我怎樣才能做到這一點?無法通過包含日期排序

    if ($vid != null && $datepicker != null) { 
        $conn = new Db(); 
        $sql = "SELECT * FROM trip_details where vehicle_id = '".$vid."' AND date_t = '".$datepicker."'"; 
        $result = $conn->query($sql); 
        while ($row = $result->fetch_assoc()) { 
         echo "<tr>"; 
         echo "<td> ". $row["trip_id"]."</td>"; 
         echo "<td> ". $row["vehicle_id"]."</td>"; 
         echo "<td> ". $row["total_trip_km"]."</td>"; 
         echo "<td> ". $row["predict_fual"]."</td>"; 
         echo "<td> ". $row["date_t"]."</td>"; 
         // echo "<td><input type=\"submit\" value=\"view map\"></td>"; 
         echo "</tr>"; 
        } 
    } 
    
    +8

    鑑於你沒有任何ORDER BY子句中您的SQL查詢,你不定義任何排序順序可言,所以沒有記錄在保證任何被退回特定的順序....如果你想要一個特定的排序順序,你需要指定一個ORDER BY子句 –

    +1

    [MySQL中的多個字段排序]的可能重複(https://stackoverflow.com/questions/4416880/sorting-multiple-fields -in-mysql) – ishegg

    +2

    您向我們顯示的代碼會選擇具有特定vehicleID和Date的所有行,因此無法在這兩個字段上排序。 –

    回答

    1

    SQL在定單的結果不能保證是從select查詢返回的,除非你明確地添加order by條款,讓你觀察到由vehicle_id排序返回的記錄事實是巧合。你需要一個order by條款添加到查詢:

    ORDER BY vehicle_id, date_t 
    
    0

    整理的需求來定義,以獲得期望的結果。

    嘗試此通過你必須子句與順序的ACS(升序)或說明,以便定義列的名稱的列

    $sql="SELECT * FROM trip_details where 
    vehicle_id='".$vid."' AND date_t='".$datepicker."' 
    ORDER BY vehicle_id DESC,date_t DESC"; 
    
    +0

    在你的答案日期得到排序,但車輛編號沒有排序 –

    +0

    @RoshanSenanayake現在試試。我在兩列上都添加了排序順序。 –

    0

    排序你數據(降序)

    例如

    爲了通過遞減COLUMN1,ASC COLUMN2

    相關問題