In einem PHP-Programm können die Datensätze mit der Anweisung select
ausgewählt und abgefragt werden.
Sortieren mit MySQL ORDER BY
MySQL stellt die unterschiedlichsten Möglichkeiten Datensätze innerhalb Datensatzsammlungen abzufragen.
Auch wenn Sie die Datensätze nach dem Auslesen beliebig manipulieren können, beispielsweise
mit diversen PHP Funktionen, so ist es ratsam sämtliche Operationen direkt in der MySQL Abfrage zu erledigen,
bevor Sie die Daten auslesen. Dies beinhaltet die richtige Reihenfolge von selektierten MySQL Felder, richtige Tabellen, eventuelle
Filtrierungen mit WHERE
und natürlich die Sortierung der Daten.
Nachfolgend werden wir betrachten wir MySQL Daten mit der Klausel ORDER BY sortiert werden.
Es ist immer besser und wesentlich schneller Ihre Daten mit MySQL zu sortieren,
statt mit einer anschließenden Programmierung.
Sortieren mit MySQL - ORDER BY
Wenn Sie Daten sortieren wollen, so sollten Sie innerhalb Ihrer MySQL Abfrage vorgehen:
SELECT 'id', 'name' FROM 'lab_tblpersonen' ORDER BY 'name'
Im obigen Beispiel wird nach Name alphabetisch sortiert.
Sie können auch die Reihenfolge der Sortierung angeben -
ob aufsteigend oder absteigend. Falls Sie das nicht angeben,
so sortiert MySQL automatisch aufsteigend:
SELECT 'id', 'name' FROM 'lab_tblpersonen' ORDER BY 'name' ASC
Obige MySQL Abfrage ist gleich der ersten, die wir gezeigt haben -
alle Datensätze werden aufsteigend sortiert.
SELECT 'id', 'name' FROM 'lab_tblpersonen' ORDER BY 'name' DESC
Nun werden die Daten alphabetisch absteigend sortiert, so dass Z als erstes vorkommt und a am Ende.
<form action="c53.php" method="post"> <div class="form-group"> <label class="control-label" for="inputSort">Sortiere nach</label> <select data-role="select" name="sort" class="form-control" id="inputSort"> <option class="fg-cyan" value="name">Nachname</option> <option class="fg-red" value="personalnummer">Personalnummer</option> <option selected class="fg-green" value="gehalt">Gehalt</option> <option class="fg-red" value="geburtstag">Geburtstag</option> </select> </div> <div class="form-group"> <button type="submit" name="send" class="btn btn-primary"> <span class="fa fa-send"></span> Send</button> </div> </form> <?php if(isset($_POST["send"])){ /* Verbindung mit MyQSL aufnehmen */ mysql_connect("localhost", "YourUsername", "YourPassword"); $dblink =mysql_select_db("YourDB"); if(isset($_POST["send"])){ // Sortiere nach dem Nachnamen If($_POST["sort"]=="name"){ $sqlstr = "select * from lab_tblpersonen ORDER BY name " . "DESC"; showDatatable($sqlstr); } // Sortiere nach der Personalnummer If($_POST["sort"]=="personalnummer"){ $sqlstr = "select * from lab_tblpersonen ORDER BY personalnummer " . "DESC"; showDatatable($sqlstr); } // Sortiere nach dem Gehalt If($_POST["sort"]=="gehalt"){ $sqlstr = "select * from lab_tblpersonen ORDER BY gehalt " . "DESC"; showDatatable($sqlstr); } // Sortiere nach dem Geburtstag If($_POST["sort"]=="geburtstag"){ $sqlstr = "select * from lab_tblpersonen ORDER BY geburtstag " . "DESC"; showDatatable($sqlstr); } } } function showDatatable($sqlstr) { $res = mysql_query($sqlstr) or die ("keine Verbindung mit der Datenbank ".mysql_error()); $num = mysql_num_rows($res); ?> <table class="table striped"> <thead> <tr><th>Lfd. Nr.</th><th>Name</th> <th>Vorname</th><th>Personalnummer</th> <th>Gehalt</th><th>Zulage</th><th>Geburtstag</th></tr> </thead><tbody> <?php while ($dsatz = mysql_fetch_assoc($res)) { ?> <tr> <td><?php echo $dsatz["id"]; ?></td> <td><?php echo $dsatz["name"]; ?></td> <td><?php echo $dsatz["vorname"]; ?></td> <td><?php echo$dsatz["personalnummer"]; ?></td> <td><?php echo number_format($dsatz["gehalt"],2,",","."); ?></td> <td><?php echo number_format($dsatz["zulage"],2,",","."); ?></td> <td><?php echo $dsatz["geburtstag"]; ?></td> </tr> <?php } ?> </tbody></table> <?php mysql_free_result($res); } ?>