Modérateur PHPfrance |
8758 Messages
22 avr. 2013, 14:41
un prédicat, dans une requête sql, c'est la partie "where" (par exemple where login='polim78' and mdp='lemdpsecretdepolim78')
- je ne pense que donner un nom différent à chaque élément du formulaire soit difficile ?
la validation du formulaire je t'ai fournis un lien assez explicite je t'invite a suivre le tuto, tu peux toujours poser des question si tu ne le comprend pas.
ensuite, pour ton soucis, il te faut créer la requête SQL (enfin surtout le prédicat) en fonction du formulaire (s'il a été utilisé ou non).
le début est simple tu l'a déjà c'est ta requête sql.
je t'ai corriger le formulaire html (avec des modification pour que se soit la clef primaire des table qui soit passées et nom les données elle même (beaucoup plus facile et rapide pour la recherche sql ensuite).
<?php
$sgbdConn = mysqli_connect('url','utilisateur','motde passe','nom de la base');
if($sgbdConn === false){
echo 'erreur sql : ',mysqli_error($sgbdConn),'<br />';
}
?>
<form action="Admin_liste_personnel.php" method="post" enctype="application/x-www-form-urlencoded" name="formulaire">
<table>
<tr id=event>
<td>Nom</td>
<td><input name="Nom" type="texte" onKeyUp="javascript:couleur(this);" maxlength="15" size="30">
</tr>
<tr id=event>
<td>Unite</td>
<td width='100'>
<select name="unite">
<?php
$reponse = mysqli_query('SELECT idUnite,Unite FROM unite',$sgbdConn);
while ($donnees = mysqli_fetch_array($reponse)) {
?>
<option value="<?php echo $donnees['idUnite']; ?>"><?php echo $donnees['Unite']; ?></option>
<?php } ?>
</select></td>
</tr>
<tr id=event>
<td>Fonction</td>
<td width='100'>
<select name="fonction">
<?php
$reponse = mysqli_query('SELECT idFonction, Fonction FROM fonction',$sgbdConn);
while ($donnees = mysql_fetch_array($reponse)) {
?>
<option value="<?php echo $donnees['idFonction']; ?>"><?php echo $donnees['Fonction']; ?></option>
<?php }
mysqli_free_result($reponse);
?>
</select></td>
</tr>
<tr id=event>
<td>Pole</td>
<td width='100'>
<select name="pole">
<?php
$reponse = mysql_query('SELECT idPole,Pole FROM pole' ,$sgbdConn);
while ($donnees = mysql_fetch_array($reponse)) {
?>
<option value="<?php echo $donnees['idPole']; ?>"><?php echo $donnees['Pole']; ?></option>
<?php }
mysqli_free_result($reponse);
?>
</select></td>
</tr>
<tr id=event>
<td>Batiment</td>
<td width='100'>
<select name="batiment">
<?php
$reponse = mysqli_query("SELECT idBatiment, Batiment FROM batiment ",$sgbdConn);
while ($donnees = mysql_fetch_array($reponse)) {
?>
<option value="<?php echo $donnees['idBatiment']; ?>"><?php echo $donnees['Batiment']; ?></option>
<?php }
mysqli_free_result($reponse);
?>
</select></td>
</tr>
<tr></tr>
<tr>
<td><input class="button" type="submit" name="Submit" value="Rechercher">
<td>
</tr>
</table>
</form>
<?php
// requete SQL avecune jointure normalisée (cf tuto indiqué hier)
$sql = 'SELECT personnel.Nom, personnel.Prenom, personnel.Civilite, fonction.Fonction, unite.Unite
FROM personnel, fonction, unite
join fonction on personnel.idFonction = fonction.id
join unite on personnel.idUnite = unite.id';
// est ce que le formulaire à été soumis ?
if(!empty($_POST['submit'])) {
// ici on va traiter les valeurs issue du formulaire
$predicat = array();
// si il y a une valeur dans la liste fonction on ajoute la condition dans le tableau $predicat (par exmeple $predicat[] = 'idfonction=412'; où 412 esty à remplacer par la valeur du formulaire
// idem pour les autres listes déroulantes.
// si le nombre d'élément du table $predicat est différent de zéro alors on ajoute la ou les conditions à la requete
// $sql . =' where ';
// + utilisation de la fonction implode => http://www.php.net/implode
}
else {
// le formulaire
}
$sql .= 'order by nom';
// reprise de ton code pour afficher le tableau.
?>
Le but du forum étant de promouvoir l'apprentissage du langage php il faut que tu t'investisse un minimum, c'est pas super complexe il faut s’entraîner un peu et lire pas mal de tuto
@+
Il en faut peu pour être heureux ......