Filtre multiple sur une colonne
Bonjour,
Je désire filtrer un ensemble avec deux ou 3 critères.
Je m'explique:
Je veux la liste des personnes dont le nom commence par ADJ ou VEI
voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
<a href="newabs.php">Revenir à la page des modifications globales</a>
<form action="newabs.php" method="post"><br>
<input type="text" onFocus="motclef.style.backgroundColor='yellow'"
onBlur="motclef.style.backgroundColor='white'" name="motclef" value="<?php echo $_REQUEST['$motclef1%']; ?>">
<input type="text" onFocus="motclef.style.backgroundColor='yellow'"
onBlur="motclef.style.backgroundColor='white'" name="motclef" value="<?php echo $_REQUEST['$motclef2%']; ?>">
<input type="submit" value="1) Rechercher un élève par le nom (ou tapez les 3 premières lettres), par le numéro de l'absence ou par la classe OU cliquez sur ce bouton pour avoir TOUS les élèves"><br>
</form>
<table border="1">
<tr>
<td width=''>NOM</td>
<td width=''>PRENOM</td>
<td width=''>CLASSE</td>
<td width=''>JUSTIFICATION</td>
<td width=''>Justifiée & légitime ?</td>
<td width=''><b>Quand</b></td>
<td width=''>de</td>
<td width=''>A</td>
<td width=''>Total</td>
<td width=''>Numéro</td>
</tr>
<?php
if (isset($motclef1) or isset($motclef2) )
{
$dateencours=$motclef1;
$clause = " WHERE elenom like '$motclef1%' or elenom like '$motclef2%' or elenom like '$motclef1%' or Numero like '$motclef1%' or divcod like '$motclef1%' ";
}
$orderby = " ORDER BY elenom";
$sql = "SELECT * FROM ges_abs " . $clause . $orderby;
$resultat = mysql_query ($sql);
echo $sql;
echo '';
while ($eleve = mysql_fetch_array ($resultat))
{
suite du code bien sûr...... |
Si je fais un seul $motclef, cela marche mais sur 1 critère
comment avoir sur les deux noms par ex ? en espérant être clair....:oops:
merci
pas très clair (pour moi...)
merci pour ce bout de code mais je ne vois pas trop ou le mettre avec le mien...
je bloque toujours sur le même problème
Bonjour
j'ai beau chercher je bloque toujours
voici mon code sur 1 recherche (et ça marche)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
<a href="newabs.php">Revenir à la page des modifications globales</a>
<form action="newabs.php" method="post"><br>
<input type="text" onFocus="motclef.style.backgroundColor='yellow'"
onBlur="motclef.style.backgroundColor='white'" name="motclef" value="<?php echo $_REQUEST['$motclef%']; ?>">
<input type="submit" value="1) Rechercher un élève par le nom (ou tapez les 3 premières lettres), par le numéro de l'absence ou par la classe OU cliquez sur ce bouton pour avoir TOUS les élèves"><br>
</form>
<table border="1">
<tr>
<td width=''>NOM</td>
<td width=''>PRENOM</td>
<td width=''>CLASSE</td>
<td width=''>JUSTIFICATION</td>
<td width=''>Justifiée & légitime ?</td>
<td width=''><b>Quand</b></td>
<td width=''>de</td>
<td width=''>A</td>
<td width=''>Total</td>
<td width=''>Numéro</td>
</tr>
<?php
if (isset($motclef) )
{
$dateencours=$motclef;
$clause = " WHERE elenom like '$motclef%' or Numero like '$motclef%' or divcod like '$motclef%' ";
}
$orderby = " ORDER BY elenom";
$sql = "SELECT * FROM ges_abs " . $clause . $orderby;
$resultat = mysql_query ($sql);
echo $sql;
echo '';
while ($eleve = mysql_fetch_array ($resultat))
{ |
le sql donne:
SELECT * FROM ges_abs WHERE elenom like 'vei%' or Numero like 'vei%' or divcod like 'vei%' ORDER BY elenom
et cela m'affiche bien tous les nom qui commencent par vei ok MAIS
j'aimerai aussi avoir les noms qui commencent par adj par ex
J'avais pensé à mettre deux input mais cela ne fonctionne pas...
merci pour l'aide:calim2:
Presque résolu mais autre demande
Bonjour
Grace à un autre forum d'aide (merci!) sans jalousie... j'avance, je donne le code pour d'autres...
j'ai simplifié le code
mais maintenant autre problème: si j'entre une seule condition (motclef1)=adj mais motclef2 est vide) il m'affiche tout...une idée pour contourner la chose ?
J'avance avec votre aide merci phpanonyme !
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
<html>
<body>
<br>
<a href="abs_index.php">Accueil</a>
<br>
<a href="newabs.php">Revenir à la page des modifications globales</a>
<form action="newabs.php" method="post"><br>
<input type="text" onFocus="motclef.style.backgroundColor='yellow'"
onBlur="motclef.style.backgroundColor='white'" name="motclef1" value="<?php echo $_POST['$motclef1%']; ?>">
<input type="text" onFocus="motclef.style.backgroundColor='yellow'"
onBlur="motclef.style.backgroundColor='white'" name="motclef2" value="<?php echo $_POST['$motclef2%']; ?>">
<input type="submit" value="1) Rechercher un élève par le nom (ou tapez les 3 premières lettres), par le numéro de l'absence ou par la classe OU cliquez sur ce bouton pour avoir TOUS les élèves"><br>
</form>
<table border="1">
<tr>
<td width=''>NOM</td>
<td width=''>PRENOM</td>
</tr>
<?php
if ((isset($_POST['motclef1'])) or isset($_POST['motclef2']))
{
$sql = mysql_query("SELECT * FROM ges_abs WHERE ((elenom like '".$_POST['motclef1']."%' OR elenom like '".$_POST['motclef2']."%')
or (Numero like '".$_POST['motclef1']."%' OR Numero like '".$_POST['motclef2']."%')
or (divcod like '".$_POST['motclef1']."%' OR divcod like '".$_POST['motclef1']."%')) ORDER BY elenom ASC")
or die('Erreur de requete '.mysql_error());
$resultat = mysql_num_rows($sql);
//echo $sql;
if($resultat>2)
{
while ($eleve = mysql_fetch_array ($sql))
{
echo '<b>'.$eleve['id'].'';
echo"<tr><td><b>".$eleve['elenom']."</b></td>";
echo"<td>".$eleve['elepre']."</td>";
echo"<td><input type='checkbox' name='maj[]' value='".$eleve['Numero']."'></td>";
$id10=$eleve['elenoet'];
$id11=$eleve['Numero'];
echo "<TD> <a href='abs_modifierbis.php?id1=$id11'>MODIFIER</a>";
}
}
}
?>
</form>
</table>
</body>
</html> |