besoin d'aide et de conseils

Répondre
cazmil
le 07/10/2004 à 10:19
cazmil
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,....
LA GLOBULE
le 07/10/2004 à 12:22
LA GLOBULE
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.
cazmil
le 08/10/2004 à 18:04
cazmil
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]
LA GLOBULE
le 09/10/2004 à 18:14
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...
smiley
cazmil
le 11/10/2004 à 14:59
cazmil
merci Globule pour ton aide, tout fonctionne nickel chrome

@ bientôt
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours