Créer liste deroulante

Petit nouveau ! | 7 Messages

19 mai 2006, 09:31

Bonjour,

Je souhaiterai creer une liste deroulante qui m'organiserais les chiffres d'une table "prix" par ordre croissant ou décroissant.

Je n'est aucune idée par ou commencer

Merci d'avance

hygis

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

19 mai 2006, 09:37

Pour te donner un ordre d'idée, il faut que tu commences par créer la requete qui va te sortir les données triées (pense à ORDER BY)
Ensuite, il va falloir que tu construises le code à partir de ces résultats

Un truc du genre
<?php
	//Récupération des données à afficher
	$str_requete = "SELECT champ1, champ2
					FROM maTable
					WHERE
						condition AND
						condition2
					ORDER BY
						tri";
	//Execution de la requete avec effichage dans le cas d'une erreur d'exécution
	$o_result = mysql_query($str_requete) or die($str_requete."<br />".mysql_error());
	
	//Affichage du début de la liste
	echo "<select name='myname'>";
	
	//Affichage de toutes les options à partir des résultats de la requete
	while ($a_result = mysql_fetch_array($o_result)) {
		echo "<option value='".$a_result['champ1']."'>".$a_result['champ2']."</option>";
	}
	
	//affichage de la fin de la liste
	echo "</select>";
?>
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 7 Messages

19 mai 2006, 09:56

Merci pour l'exemple

Je vais essayé de l'appliquer :wink:

Petit nouveau ! | 7 Messages

20 mai 2006, 19:08

Bonjour,

J'ai essayé de differente facon d'ajouter votre code et je ni suis pas arrivé.

L'intégrer à un code deja existant s'avérre beaucoup plus compliqué . :?

Quelqu'un pourait m'aider à l'intégrer ?


Voici le code actuel :

$cat=$_GET['cat'];
$zone=$_POST['zone'];


// Filtre Zone ->

echo "
<form method=\"post\" action=\"\">
<b>$filtre_zone</b> :
 <label>
 <select name=\"zone\">
  ";
$query=mysql_db_query($mysql_base,"SELECT * FROM zones ORDER by prix desc",$db);
if (@mysql_num_rows($query)) {
echo "<option value=\"0\"></option>";
while ($row = mysql_fetch_array($query)) {
$id_cat=$row['id'];
$nom_cat=$row['nom'];
echo "<option value=\"$id_cat\" ";if($zone==$id_cat){echo"selected=\"selected\"";}echo">$nom_cat</option>";
	}
}

echo "
  </select>
  </label>
  <label>
  <input type=\"submit\" name=\"Submit\" value=\"$lien_trier\" />
  </label>
</form><br>
";

// <- Fin filtre zone

if ($cat) { $cat="AND cat='$cat'"; }
if ($zone>0) { $zone="AND zone='$zone'"; }
else { $zone=""; }

$query=mysql_db_query($mysql_base,"SELECT * FROM maisons WHERE id<>'' $cat $zone ORDER by prix asc, id desc",$db);
if (@mysql_num_rows($query)) {

echo "
<table width=\"1000\"  border=\"0\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\">
  <tr>
  ";

while ($row = mysql_fetch_array($query)) {
$maison_id=$row['id'];
$maison_prix=$row['prix'];
$maison_nom=$row['nom'];
$maison_cat=$row['cat'];
$maison_desc=$row['description'];
$maison_ref=$row['ref'];
$maison_mail=$row['mail'];
$maison_zone=$row['zone'];
$maison_photo=$row['photo'];
$nbimage++;

$queryzone=mysql_db_query($mysql_base,"SELECT nom FROM zones WHERE id='$maison_zone'",$db);
$maison_zone=@mysql_result($queryzone,0,"nom");
$querycat=mysql_db_query($mysql_base,"SELECT nom FROM categories WHERE id='$maison_cat'",$db);
$categorie_nom=@mysql_result($querycat,0,"nom");
if ($categorie_nom != $last_categorie_nom) {
$categorie_affichage="$admin_categorie : <b>$categorie_nom</b>";
$last_categorie_nom=$categorie_nom;
}
else { $categorie_affichage=""; }

echo "
<td align=\"center\" valign=\"middle\">
$maison_prix €
<br>
<a href=\"?inc=view_catalogue&id=$maison_id\"><img src=\"$maison_photo\" border=\"0\"></a>
<br>
<span class=\"minuscule\">Réf. : $maison_ref</span>
<br><br>
</td>
";
if ($nbimage == 3) { echo "</tr><tr>"; $nbimage=0; }
}
echo "</tr> 
</table>
";
}


// Si aucune Référence
else { echo " 
<table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td align=\"center\" valign=\"middle\"><br><br> $admin_maison_aucune</td>
</tr></table>
<br><div align=\"center\"><hr></div>
<table width=\"1000\" border=\"0\" align=\"center\" cellpading\"0\" cellspacing=\"0\">
<tr>
 </table>

	";
}
 

Et les tables:

Code : Tout sélectionner

CREATE TABLE maisons ( id int(10) NOT NULL auto_increment, prix text NOT NULL, nom text NOT NULL, nomtrad text NOT NULL, cat int(10) NOT NULL default '0', description text NOT NULL, descriptiontrad text NOT NULL, ref text NOT NULL, mail text NOT NULL, pos int(10) NOT NULL default '0', photo text NOT NULL, zone int(10) NOT NULL default '0', KEY id (id) ) TYPE=MyISAM;
P.S : C'est une personne qui ma fait le noyau et je debute en php