Plusieurs mots dans un même champ?

Sclormu -  
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   -
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 champ.
Par exemple si je tape Paul, il m'affiche tous les noms paul mais si je tape paul jean il ne trouve aucun résultat, ni de paul ni de jean.
Ce que je voudrais c'est qu'il affiche les documents de paul et de jean quand je cherche paul jean.

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();
}
?>

21 réponses

Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
la question peut paraitre bête mais y a-t-il d'autres enregistrements dans ta table que ceux de Dupont et Muller (cf tableau de données en <10>) ?

maintenant que tu as une requête qui tourne il faut vérifier que ton script php produit bien une requête en tous points semblable à celle là.
pour cela tu peux remplacer dans ton code :
$result = mysql_query($select) or die ('Erreur : '.mysql_error());
$total = mysql_num_rows($result); 

par
echo $select;
0