recherche multicritere dans un seul champ? - SQL/NoSQL - Programmation
MarshPosté le 19-09-2007 à 19:30:12
Bonjour, j'utilise un formulaire de recherche multicritere qui fonctionne plutot bien mais je n'arrive pas à faire une recherche de plusieurs mot dans un seul <input>. Par exemple si je cherche dupont il m'affiche les informations concernant tous les duponts mais si je cherche dupont et muller je n'obtient rien... exemple de ma table:
id | nom | prenom | age ____________________________ 1 | dupont | paul | 30 ____________________________ 2 | muller | jean | 42 ____________________________ 3 | dupont | pierre | 53
Si quelqu'un a une une petite idée sur les changements à effectuer...
// connection à la DB mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error());
$select = "SELECT * FROM $tables WHERE $champ1 = '$nom' AND $champ2 = '$prenom' AND $champ3 = '$age'";
if($nom=="" AND $prenom=="" AND $age=="" ) echo 'Vous devez preciser en moins un critére de recherche !!'; else { $result = mysql_query($select) or die ('Erreur : '.mysql_error()); $total = mysql_num_rows($result);
Marsh Posté le 19-09-2007 à 19:30:12
Bonjour,
j'utilise un formulaire de recherche multicritere qui fonctionne plutot bien mais je n'arrive pas à faire une recherche de plusieurs mot dans un seul <input>.
Par exemple si je cherche dupont il m'affiche les informations concernant tous les duponts mais si je cherche dupont et muller je n'obtient rien...
exemple de ma table:
id | nom | prenom | age
____________________________
1 | dupont | paul | 30
____________________________
2 | muller | jean | 42
____________________________
3 | dupont | pierre | 53
Si quelqu'un a une une petite idée sur les changements à effectuer...
$nom = $_POST['nom];
$champ1 = "nom";
$prenom = $_POST['prenom'];
$champ2 = "prenom";
$age = $_POST['age'];
$champ3 = "age";
if(empty($_POST['nom']))
{
$nom = 1;
$champ1 = 1;
}
if(empty($_POST['prenom']))
{
$prenom = 1;
$champ2 = 1;
}
if(empty($_POST['age']))
{
$age = 1;
$champ3 = 1;
}
$host = '*****';
$user = '*****';
$pass = '*****';
$db = '*****';
$tables = 'personne';
// connection à la DB
mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
$select = "SELECT * FROM $tables WHERE $champ1 = '$nom' AND $champ2 = '$prenom' AND $champ3 = '$age'";
if($nom=="" AND $prenom=="" AND $age=="" )
echo 'Vous devez preciser en moins un critére de recherche !!';
else
{
$result = mysql_query($select) or die ('Erreur : '.mysql_error());
$total = mysql_num_rows($result);
if($total)
{
echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
echo "<tr>";
while($row = mysql_fetch_array($result))
{
echo '
<td>
<div class="b13">
<table>
<h2>'.$row['prenom'].'</h2>
<tr>
<td>'.$row['age'].'</td>
<td>'.$row['img'].'</td>
</tr>
</table>
</div>
</td>
</tr>';
}
echo '
</table>';
}
else echo '<div align="center">Aucun résulat ne corresponds à votre recherche !!...</div>';
mysql_free_result($result);
mysql_close();
}
?>