Plusieurs mots dans un même champ?
Sclormu
-
Dalida Messages postés 7114 Date d'inscription Statut Contributeur Dernière intervention -
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();
}
?>
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();
}
?>
A voir également:
- Plusieurs mots dans un même champ?
- Générateur de mots - Télécharger - Sécurité
- Mots de passe enregistrés - Guide
- Mots entre amis messenger solution - Forum jeux en ligne
- Comment souligner un mot dans un sms ✓ - Forum Jeux vidéo
- Écrire en gras, italique, souligner - Forum Téléphones & tablettes Android
21 réponses
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 :
par
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;