2016-06-25 2 views
-1

Ich habe eine Frage zu einer HTML-Tabelle und Daten aus einer Datenbank.Wie kann ich HTML-Tabelle mit Daten aus der Datenbank bestellen?

Ich schaffte es, eine HTML-Tabelle zu erstellen, die Daten aus einer MySQL-Datenbank holt. Bis jetzt funktioniert es gut. Ich verwende Autoinkrement innerhalb der Datenbank.

Leider geht die HTML-Tabelle von oben nach unten. Der erste Eintrag hat also die ID 1, während der letzte Eintrag eine höhere Nummer hat. Ich möchte das ändern, so dass der Eintrag mit der höheren ID oben angezeigt wird.

Gibt es eine Möglichkeit, das ohne Javascript oder Tasten zu tun? Ich habe noch keine Lösung gefunden.

+0

"Ich habe nicht sehr viel Programmierkenntnisse" So viel ist offensichtlich ;-) Was ist falsch mit Javascript? – Strawberry

+0

@Strawberry. Wie würden Sie vorschlagen, es zu reparieren? –

+0

@ JefréN. Ich würde wahrscheinlich DESC verwenden, wie Sie vorschlagen - aber es könnte angemessener sein, einfach das PHP-Array oder die HTML-Ausgabe direkt zu sortieren (mit dem Javascript, das das OP zu fürchten scheint) – Strawberry

Antwort

2

Sie können ORDER BY verwenden, um die Liste von der höheren auf die niedrigere Nummer zu ändern.

Die ORDER BY Schlüsselwort verwendet wird, um die Ergebnismenge durch eine oder mehrere Spalten zu sortieren, sortiert es die Ergebnismenge standardmäßig in aufsteigend, wenn Sie es in absteigender Reihenfolge (Ihrem Fall) möchten Sie die verwenden können, DESC Schlüsselwort.

Aktualisieren Sie Ihre SQL-Abfrage wie folgt.

SELECT * 
FROM table_name 
ORDER BY COLUMN_NAME_TO_SORT DESC 

http://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html


Sie auch PHP ‚s usort() Funktion sortieren die Ergebnismenge abgerufen aus der Datenbank verwenden können.

Beispielcode das Array durch spezifische Spalte usort()

usort($finalarray, function($a, $b) { 
    return $finalarray['COLUMN_NAME_TO_SORT'] - $finalarray['COLUMN_NAME_TO_SORT']; 
}); 
// Assuming $finalarray is a result-set from database and it's an array. 

Referenz zu sortieren: http://php.net/manual/en/function.usort.php


ORDER BY in SQL direkt bevorzugt und bessere Option um das Ergebnis nach höherer ID zu senken.

+0

Vielen Dank für Ihre ausführliche Erklärung. Hoch geschätzt! Ich habe diesen Teil bereits in der mysql-Dokumentation gefunden, aber ich dachte nicht, dass ich eine SQL-Abfrage in meinem Code verwendet habe, um die Daten zu holen (was ich natürlich gemacht habe). Ich werde es nächstes Mal besser machen. – Andreas

2

Ja, Sie können das tun in einer MySQL-Anweisung:

SELECT * 
FROM table 
ORDER BY ID DESC 

Es ist die letzte Zeile, die Sie hinzufügen müssen. Mit ORDER BY können Sie die Reihenfolge festlegen, in der die SELECT Ergebnisse angezeigt werden. Die Reihenfolge kann DESC (absteigend) oder ASC (aufsteigend) sein. Sie können in mehreren Spalten, getrennt durch Kommas, bestellen, sortiert dann zuerst die erste Spalte, dann die zweite usw.

+0

Haben Sie etwas dagegen, ihnen zu sagen, warum diese Lösung korrekt ist, damit sie wissen, was beim nächsten Mal falsch ist? –

+0

@ Jefré N .: Ich verstehe deine Frage nicht? Andreas hat keine Bestellung benutzt, also zeige ich ihm, wie man auf ID-Nummern bestellt. Was er nicht getan hat, lag nicht wirklich falsch. –

+0

Entschuldigung, ich hoffe, ich habe dich nicht beleidigt. Ich bezog mich einfach auf die Tatsache, dass er/sie vielleicht nicht weiß, wofür DESC/ASC verwendet werden und was sie bedeuten. Das ist alles was ich meinte. : D –

Verwandte Themen