2016-06-09 12 views
-1

Ich präsentiere dem Benutzer eine Liste von Optionen basierend auf einer Datenbankabfrage. Die Ergebnisse werden korrekt abgerufen, sind jedoch aktuell ungeordnet und ich möchte sie in alphabetischer Reihenfolge in der Optionsliste anzeigen. Ich habe bisher mehrere Lösungen mit "ORDER BY" auf der Abfrageebene ausprobiert, jedoch ohne Erfolg. Gibt es einen einfachen Weg, dies zu erreichen? (Die Liste enthält über 1000 Treffer) Der Code ist wie folgt:Bestellliste der Optionen basierend auf MySQL-Abfrage - PHP

<?php 
$user_id = $_SESSION['user_id']; 
$sql = "SELECT * FROM add_bulding WHERE description<>''"; 
$query = $this->db->query($sql); 
$building_title = $query->result_array(); 
?> 


<div> 
    <select> 
      <option value="">Select Building</option> 
      <?php foreach ($building_title as $value) { ?> 
       <option value = "<?php echo $value['id']; ?>"> 
       <?php echo $value['title']; ?> 
       </option> 
      <?php 
      } 
      ?> 
    </select> 
</div> 
+2

ORDER BY Titel sollte funktionieren – Mihai

+2

Reihenfolge durch die Abfrage hinzufügen sollte Ihnen die richtige Reihenfolge geben. Bitte zeigen Sie Ihre Bestellung per Abfrage, und ein kleines Beispiel der Daten und warum es falsch ist –

Antwort

0

Versuchen Sie bitte zum Ändern:

$sql = "SELECT * FROM add_bulding WHERE description<>'' ORDER BY title DESC"; 
+0

Danke, das hat perfekt funktioniert – 1dxb

0

Klingt wie Sie eine Abfrage wie wünschen:

SELECT id, title FROM add_bulding WHERE description<> ORDER BY title desc 

Alternativ , können Sie es in php sortieren:

In beiden Fällen müssen Sie jedoch Ihre Werte bereinigen, damit Sie keine XSS-Probleme haben.

0

Diese Abfrage:

$sql = "SELECT * FROM add_bulding WHERE description<>'' ORDER BY title"; 

Wenn Sie Titeldaten mit alphabetischer Reihenfolge erhalten möchten, dann können Sie ‚ASC‘ schreiben oder brauchen keine nach ORDER BY Titel zu schreiben.

Aber Sie wollen Titeldaten in absteigender Reihenfolge, dann müssen Sie schreiben "DESC" nach ORDER BY Titel Ich hoffe, dass Sie eine Lösung bekommen.

Verwandte Themen