Sortierte Comboxbox

Konstantin Gross

Erfahrenes Mitglied
Hallo,
ich habe folgendes Problem. Ich fülle "Comboboxen" mit Daten aus einer MySQL Datenbank auf, das klappt ja alles wunderbar, aber wie kann ich es machen, das die ausgelesenen Daten die von der Datenbank in die "Combobox" kommen gleich sortiert werden, sprich A-Z, diese sollen auch sortiert in die "Combobox" kommen. Bisher zeigt die "Combobox" sie so an wie sie in die Datenbank eingetragen wurden sprich zuerst ID 1 dann ID 2...

Ich hoffe mir kann jemand helfen.

Danke.
 
Hallo Counterfeit!

Das sortieren deiner Einträge musst du bereits bei der Datenbankabfrage machen. Das sollte ca. so funktionieren:

Code:
$sql = 'SELECT * FROM `Tabellenname` ORDER BY `Comboboxeintragname` ';

Hoffe dir geholfen zu haben.

mfg Hoizwurm
 
ja ich geb dir mal nen beispielcode für den SQL-Query!

Code:
$query = "SELECT *spalten* FROM *tabelle* ORDER BY *spalte deiner wahl* ";

Für die Sternchen kommen natürlich immer deine Spezifischen Tabellen und Spalten rein :)
 
sortieren

er sortiert dabei aber von A-Z wenn du von Z-A sortiert haben willst häng noch ein DESC dran.

Aber mal ne Gegenfrage, wie hast du das geschafft mit der Combobox. Ich krieg die Combobox nicht gefüllt mit Daten aus der HP.
 
Hi,

also du hast ja deine Daten dann in einem Array
Ich nehme mal $aDaten - wichtig ist das es eindimensional ist also:
$aDaten[0] = Name1
$aDaten[1] = Name2
etc...

[EDIT] habe alle Änderungen aus diesem Thread nu übernommen[/EDIT]
PHP:
<?php
unset($aDaten);
//Zu DB connecten
include('db_connect.php');
//aus der DB lesen:
$sqlQuery = "SELECT name FROM personal ORDER BY einsaetze DESC"
$sqlResult = mysql_query($sqlQuery);
//Die Namen alle einzelnd lesen
for($i=0; $strRow = mysql_fetch_array($sqlResult); $i++) {
   $aDaten[] = $strRow[name];
}
//erstmal den Anfang der cboBox machen
$cboNamenBox = "<select name=\"namen\">\n";
//nun alle einzelnen Optionen
foreach($aDaten as $strRow) {
   $cboNamenBox .= "<option value=\"$strRow\">$strRow</option>\n";
}
//nun noch den Schluss
$cboNamenBox .= "</select>\n";
//Als letztes dann noch auf der Seite ausgeben:
echo $cboNamenBox;
?>

Fertig :)

Grtz MrF
 
Zuletzt bearbeitet:
Irgendwie bin ich zu blöd

<?
include("db_connect.php");
?>


<?
$abfrage = "SELECT name FROM personal ORDER BY einsaetze DESC";
$ergebnis = mysql_query($abfrage);
$arr[]='$ergebnis';
?>
<?
//erstmal den Anfang machen
$cboNamenBox = "<select name=\"namen\">\n";
//nun alle einzelnen Optionen
foreach($arr as $strRow) {
$cboNamenBox .= "<option value=\"$strRow\">$strRow</option>\n";
}
//nun noch den Schluss
$cboNamenBox .= "</select>\n";
?>

Wenn ich denn Code ausführe erscheint eine blanke Seite, was mach ich falsch.
 
mal ne frage:
was bedeutet $arr[] = $ergebnis; ?
ich denke mal du willst dem array das resultset von $ergebnis zuweisen?
wenn schon, dann probiers am besten mit der suche nach einem thread, welcher dir hier helfen kann. (so eine frage habe ich gerade eben beantwortet)
mfg horusab :)
 
Zurück