2017-09-24 1 views
0

Wenn ich die vehicleID und das Datum eingeben, müssen die Datensätze sortiert werden, indem sowohl die Fahrzeug-ID als auch das Datum verwendet werden. Es wird jedoch nicht vom Datum sortiert, sondern nur mit der vehicleID. Wie kann ich das erreichen?Sortierung nach Datum nicht möglich

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

Sie keine ORDER BY-Klausel in der SQL-Abfrage gegeben haben, Sie definieren keine Reihenfolge, um überhaupt, so gibt es keine Garantie für die Aufzeichnungen in jedem zurückgegeben werden bestimmte Reihenfolge .... Sie müssen eine ORDER BY-Klausel angeben, wenn Sie eine bestimmte Sortierreihenfolge wünschen –

+1

Mögliches Duplikat von [Sortierung mehrerer Felder in MySQL] (https://stackoverflow.com/questions/4416880/sorting-multiple-fields -in-mysql) – ishegg

+2

Der Code, den Sie uns zeigen, wählt alle Zeilen mit einer bestimmten vehicleID und einem Datum aus, sodass sie nicht nach diesen beiden Feldern sortiert werden können. –

Antwort

1

SQL macht keine Garantie auf die Reihenfolge ergibt sich aus einer select Abfrage zurückgegeben werden, wenn Sie explizit eine order by Klausel hinzufügen, so dass die Tatsache, dass Sie die zurückgegebenen Datensätze durch die vehicle_id sortiert beobachten ist zufällig. Sie benötigen einen order by-Klausel der Abfrage hinzuzufügen:

ORDER BY vehicle_id, date_t 
0

Sortieren nach Bedarf das gewünschte Ergebnis definieren zu erhalten.

versuchen, diese

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

In Ihrem Antwortdatum sortiert, aber Fahrzeug-ID nicht sortiert –

+0

@RoshanSenanayake jetzt versuchen. Ich habe Sortierreihenfolge für beide Spalten hinzugefügt. –

0

Sie sortieren Daten durch die Spalten Sie den Namen der Spalten in ORDER BY-Klausel bei Bestellung Acs (aufsteigend) oder Beschr definieren (absteigend)

z.B.

Reihenfolge nach ab column1, asc column2