Liste déroulante rangée par ordre alphabétique

Résolu
Robin2001 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
Robin2001 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Bonjour, une de mes pages propose de sélectionner un secteur lié à une ville pour supprimer le secteur choisi.
Mon problème est que si, pour la liste déroulante des villes, celles-ci apparaissent par ordre alphabétique, ce n'est pas le cas pour les secteurs qui apparaissent dans l'ordre défini lors de la saisie dans la table "secteurs" de la base de données.
J'ai essayé avec l'argument ORDER BY mais cela ne fonctionne pas. Voici le bout de code en question :

<tr valign="baseline">
<td align="right" nowrap class="StyleEnTeteChamps"><div align="left" class="Style5">Ville:</div></td>
<td>
<select name="VILLE" class="StyleChampsObligatoire" id="VILLE" onChange="Remplir_Secteurs()">
<option value="-1">Sélectionner une ville</option>
<?php
mysql_select_db($database_BaseMySQLOTV, $BaseMySQLOTV);
$DT_OTVVILLE = mysql_query("SELECT * FROM villes ORDER BY ville ASC", $BaseMySQLOTV) or die(mysql_error());
$row_DT_OTVVILLE = mysql_fetch_assoc($DT_OTVVILLE);
$totalRows_DT_OTVVILLE = mysql_num_rows($DT_OTVVILLE);

if ($totalRows_DT_OTVVILLE > 0)
{
do
{
echo('<option value="'.$row_DT_OTVVILLE["ID"].'"');

if (isset($_GET['VILLE']) && $row_DT_OTVVILLE["ID"] == $_GET['VILLE'])
echo(' selected');

echo('">'.$row_DT_OTVVILLE["VILLE"].'</option>');
}
while ($row_DT_OTVVILLE = mysql_fetch_assoc($DT_OTVVILLE));
}
?>
</select>
<span class="StyleObligatoires">*</span> </td>
</tr>
<tr valign="baseline">
<td align="right" nowrap class="StyleEnTeteChamps"><div align="left">
<div align="left" class="Style5">Secteur:</div>
</div></td>
<td>
<div id="selectSECTEUR">
<select name="SECTEUR" class="StyleChampsObligatoire" id="SECTEUR">
<option value="-1">Sélectionner un secteur</option>
<?php
if (isset($_GET['VILLE']))
{
mysql_select_db($database_BaseMySQLOTV, $BaseMySQLOTV);
$query_Dt_CP = sprintf("SELECT * FROM secteurs WHERE VILLE = %s", GetSQLValueString("" . $_GET['VILLE'] . "%", "text"));
$Dt_CP = mysql_query($query_Dt_CP, $BaseMySQLOTV) or die(mysql_error());
$row_Dt_CP = mysql_fetch_assoc($Dt_CP);
$totalRows_Dt_CP = mysql_num_rows($Dt_CP);

if ($totalRows_Dt_CP > 0)
{
do
{
echo('<option value="'.$row_Dt_CP['ID'].'"');

if (isset($_GET['SECTEUR']))
{
if ($_GET['SECTEUR'] == $row_Dt_CP['ID'])
echo(' selected');
}

echo('>'.$row_Dt_CP['SECTEUR'].'</option>');
}
while ($row_Dt_CP = mysql_fetch_assoc($Dt_CP));
}
mysql_free_result($Dt_CP);
}
?>
</select>
<span class="StyleObligatoires">*</span></div> </td>
</tr>
<tr valign="baseline">
<td align="right" nowrap class="StyleObligatoires"><div align="left">* champs obligatoires</div></td>
<td> </td>
</tr>
<tr valign="baseline">
<td height="46" align="right" nowrap> </td>
<td><input name="BtnSupprimerOTV" type="submit" class="StyleBouton" id="BtnSupprimerOTV" value="Supprimer le secteur"></td>

J'ai bien essayé de mettre ceci, mais cela ne donne aucun résultat :

$query_Dt_CP = sprintf("SELECT * FROM secteurs WHERE VILLE = %s ORDER BY SECTEUR", GetSQLValueString("" . $_GET['VILLE'] . "%", "text"));


Merci pour votre aide.

2 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
ORDER BY SECTEUR
si le nom de ton champ secteur est en minuscules alors:
ORDER BY secteur
0
Robin2001 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Même de cette manière, cela ne fonctionne pas
0
Robin2001 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Problème résolu. Dans mon script, une fonction Java appelait une autre page PHP. C'est dans cette dernière que je devais ajouter mon ORDER BY.
0