Page 1 sur 1

pré liste dans Liste déroulante

Posté : 11 mars 2009, 13:46
par Dom!
Bonjour à tous !
J'utilise une liste déroulante pour afficher la marque de mes véhicules.
Est il possible d'afficher les marques les plus connues au début de ma liste deroulante ?

Exemple :

Renault
Peugeot
---------
Audi
Aixam
etc...

Voici ma liste actuelle :
<select name="compagnie" class="champ" id="compagnie">
              <option value="0">Aucun</option>
              <?php
				  mysql_select_db($database_SAGIP, $SAGIP);
$sqldip = 'SELECT * from tb_compagnies';
   // $nbsql += 1;
	if ($resselectdip = mysql_query($sqldip)) {
         while ($selectdip = mysql_fetch_array($resselectdip))
         {
						 		if ($id_util == $selectdip["id_user"])
								 	$temp = "selected";
								else 
								 	$temp = "";
                                echo '<option value="'.$selectdip["id_compagnie"].'"'.$temp.'>'.$selectdip["nom"].' - '.$selectdip["code_courtier"].'</option>';
                                 
         }
    }
?>
            </select>
Merci pour votre aide !

Posté : 11 mars 2009, 14:53
par yaug
Bonjour.
En fait ... tout dépend de ce que tu considère comme une marque connue.

Voici ce que je te propose
<?php
$string_top_options = "";
$string_other_options = "";
mysql_select_db($database_SAGIP, $SAGIP);
$sqldip = 'SELECT * from tb_compagnies';
if ($resselectdip = mysql_query($sqldip)) {
	while ($selectdip = mysql_fetch_array($resselectdip))
	{
		//On détermine si l'option est sélectionnée
		if ($id_util == $selectdip["id_user"])
			$temp = "selected";
		else 
			$temp = "";
		
		//On détermine si c'est une marque connue 
		if($selectdip['connue'] == 1)
			$string_top_options .= '<option value="'.$selectdip["id_compagnie"].'"'.$temp.'>'.$selectdip["nom"].' - '.$selectdip["code_courtier"].'</option>';
		else 
			$string_other_options .= '<option value="'.$selectdip["id_compagnie"].'"'.$temp.'>'.$selectdip["nom"].' - '.$selectdip["code_courtier"].'</option>';
	}
}
?>
<select name="compagnie" class="champ" id="compagnie">
<option value="0">Aucun</option>
<?php 
echo $string_top_options;
echo $string_other_options;
?>
</select> 
En gros, tu rajoutes dans ta table un champ 'marque_connue' (ou ce que tu veux), de type enum que tu met à 1 ou 0.

Cela te conviens ?

Posté : 11 mars 2009, 14:59
par Ryle
A partir du moment où tu ajoutes un champ en base, tu peux aussi tout simplement faire un "ORDER BY ton_champ" dans la requête et directement les avoir dans l'ordre ;)

Tu pourras même spécifier l'ordre exact dans lequel tu veux qu'elles apparaissent :)

Posté : 13 mars 2009, 14:31
par Dom!
Je n'avais pas pensé à cette solution qui fonctionne parfaitement.

Merci ! pour votre aide.