php
  • mysql
  • sql
  • 2017-09-24 91 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

    相关问题