besoin d'aide et de conseils
bonjour,
j'ai créé une table dans mysql qui contient différents champs : département, nom, rue, code postal, ville, téléphone, email, url,...
j'ai fait une requête qui permet d'afficher les différents champs, mais je voudrais que l'utilisateur puisse choisr l'affichage des différents champs, c'est à dire s'il veut afficher sa requete en triant les noms dans l'ordre croissant, ou bien trier les champs email vide ou non vide
mais je ne vois pas comment faire , je voudrais faire comme cela :
l'utilisateur sélectionne un des champs dans une liste déroulante, puis il choisit le type de tri (croissant, décroissant) et il sélectionne vide ou non vide
quelqu'un pourrait me donner des pistes pour me dire comment procéder car j'éprouve quelques difficultés, au départ je voulais créer une requete pour chaque champs c'est à dire une requete qui me trie les noms dans l'ordre croissant, une autre qui me trie les départements,....
Imaginons que tu ais un formulaire complet :
- un menu deroulant qui contient les champs de ta table (quand l'utilisateur soumet le formulaire, tu as la variable $_POST['champ']).
- un bouton radio croissant / decroissant (qui a en fait comme valeur ASC / DESC et que tu recuperes grace à la variable $_POST['ordre']).
- un bouton radio nul / non nul (que tu recuperes grace à la variable $_POST['nul']).
Bref, au final, voici une requete possible :
<?php
if ($_POST['nul'] == 'nul') $sql = 'SELECT truc, chose FROM table WHERE '.$_POST['champ'].'="" ORDER BY '.$_POST['champ'].' '.$_POST['ordre'];
else $sql = 'SELECT truc, chose FROM table ORDER BY '.$_POST['champ'].' '.$_POST['ordre'];
?>
Tu vois un peu l'idée ? Le truc, c'est de construire sa requete en fonction des données du formulaire.
merci globule pour ton aide, mais il y a juste un truc que je n'ai pas compris au niveau du formulaire dans ton exemple quelles valeurs attributons au boutons radio nul/non nul ?
car si j'ai bien compris voila ce que je ferai dans le formulaire et l'affichage du résultat:
<form name="form1" method="post" action="trie_test.php">
<div align="center">
<p><select name="champ" id="champ">
<option value="Chateau_departement">Département</option>
<option value="Chateau_ville">Ville</option>
<option value="Chateau_email">Email</option>
<option value="Chateau_telecopie">Télécopie/Fax</option>
</select>
</p>
<p>croissant <input type="radio" name="ordre" value="asc">
</p>
<p> décroissant
<input type="radio" name="ordre" value="desc">
</p>
<p>nul
<input type="radio" name="nul" value="">
</p>
<p>non nul
<input type="radio" name="non nul" value="nul">
</p>
<p>
<input type="submit" name="chercher" value="Chercher">
</p>
</div>
</form>
<?php
$POST['chercher'];
$_POST['champ'];
$_POST['ordre'];
$_POST['nul'];
mysql_select_db($db, $Connexion);
if ($_POST['nul'] == 'nul') $sql = 'SELECT Chateau_nom, Chateau_rue, Chateau_code_postal, Chateau_ville, Chateau_email, Chateau_telecopie FROM chateau WHERE '.$_POST['champ'].'="" ORDER BY '.$_POST['champ'].' '.$_POST['ordre'];
else $sql = 'SELECT Chateau_nom, Chateau_rue, Chateau_code_postal, Chateau_ville, Chateau_email, Chateau_telecopie FROM chateau ORDER BY '.$_POST['champ'].' '.$_POST['ordre'];
$res = mysql_query($sql) or die ('Erreur : '.$sql.'<br>'.mysql_error());
?>
<table>
<tr>
<td>Nom</td>
<td>Rue</td>
<td>Code postal</strong></td>
<td>Ville</td>
<td>Voir fiche</td>
</tr>
<?php do { ?>
<tr>
<td><?php echo $row_res['Chateau_nom']; ?></td>
<td><?php echo $row_res['Chateau_rue']; ?></td>
<td><?php echo $row_res['Chateau_code_postal']; ?></td>
<td><?php echo $row_res['Chateau_Ville']; ?></td>
<td>
<div align="center"><a href="fiche3.php?Chateau_Id=<?php echo $row_res['Chateau_Id']; ?>"><img src="Quote.gif" width="16" height="11" border="0"></a></div>
</font></div></td>
</tr>
<?php } while ($row_res = mysql_fetch_assoc($res)); ?>
</table>
merci de me dire ce qui va pas
LA GLOBULE : la chuis crevé, mais demain apres-midi (enfin samedi quoi ^^), promis je teste ton bazar :)
[Message modifié le 09/10/2004 à 02:22 par LA GLOBULE]
Tu peux essayer ceci (formulaire + code de la requete SQL) :
(Le code posté par ce membre étant trop long, il a été automatiquement inséré dans le wall. Pour le voir, veuiller clicker sur [lien=http://www.lephpfacile.com/wall/lire_wall.php?wall=1694]ce lien[/lien])
Attention, à toi de vérifier si les champs du form sont remplis et si au moins un radio est coché, etc...
merci Globule pour ton aide, tout fonctionne nickel chrome
@ bientôt
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: