Plusieurs mots dans un même champ?

Fermé
Sclormu - 17 sept. 2007 à 16:32
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 20 sept. 2007 à 22:46
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 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
20 sept. 2007 à 22:46
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