Recherche plusieurs mots clés
Fermé
alibi74
Messages postés
8
Date d'inscription
mardi 5 février 2008
Statut
Membre
Dernière intervention
12 février 2010
-
11 févr. 2010 à 10:20
asmaanoor Messages postés 73 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 20 janvier 2014 - 20 oct. 2012 à 15:27
asmaanoor Messages postés 73 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 20 janvier 2014 - 20 oct. 2012 à 15:27
A voir également:
- Recherche plusieurs mots clés
- Recherche musique - Guide
- Google recherche par image - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Identifiants et mots de passe - Guide
- Recherche adresse - Guide
6 réponses
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
11 févr. 2010 à 10:24
11 févr. 2010 à 10:24
C'est normal qu'il te retourne les trucs avec un seul des mots clés car tu fait :
LIKE "%ceci%"
OR
LIKE "%cela%"
Donc en gros tu demande qu'il contient soit ceci, soit cela, soit les deux.
Si tu veux qu'il contienne les deux tu dois faire :
LIKE "%ceci%"
AND
LIKE "%cela%"
Par contre entre le titre et le contenu je te conseille de garder un OR
Tu peux utilise des parenthèses aussi, donc au final ça te donnera en simplifier qqch comme ceci :
LIKE "%ceci%"
OR
LIKE "%cela%"
Donc en gros tu demande qu'il contient soit ceci, soit cela, soit les deux.
Si tu veux qu'il contienne les deux tu dois faire :
LIKE "%ceci%"
AND
LIKE "%cela%"
Par contre entre le titre et le contenu je te conseille de garder un OR
Tu peux utilise des parenthèses aussi, donc au final ça te donnera en simplifier qqch comme ceci :
WHERE (titre LIKE "%ceci%" OR contenu LIKE "%ceci%") AND (titre LIKE "%cela%" OR contenu LIKE "%cela%") AND (titre LIKE "%autre%" OR contenu LIKE "%autre%")
alibi74
Messages postés
8
Date d'inscription
mardi 5 février 2008
Statut
Membre
Dernière intervention
12 février 2010
11 févr. 2010 à 10:44
11 févr. 2010 à 10:44
ok donc si je comprend bien il va falloir que je code afin de dissocier chaque mot de la requête genre $mots1, $mots2....c'est bien cela ?
Je cherche mais je n'arrive pas a integrer le AND dans ma requète. Merci quand même.
Je cherche mais je n'arrive pas a integrer le AND dans ma requète. Merci quand même.
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
11 févr. 2010 à 14:00
11 févr. 2010 à 14:00
bah tu as déjà mis le OR ^^
alibi74
Messages postés
8
Date d'inscription
mardi 5 février 2008
Statut
Membre
Dernière intervention
12 février 2010
12 févr. 2010 à 00:28
12 févr. 2010 à 00:28
Bon ben j'ai retravaillé mon code mais il me met un "parse error" pour la ligne que j'ai soulignée...j'suis encore loin d'être un expert en php donc la je craque...
//...
$mot = ( $_POST['mot'] );
// Extraction des mots clefs
$mots = explode( " ", $mot );
$i = count( $mots )
{
$query = "SELECT * FROM table WHERE ";
for( $i = 0; $i < count( $mots ); $i++ )
{
$query .= "titre LIKE '%". $mots[0] ."%' OR contenu LIKE '%". $mots[0] ."%' ";
"AND titre LIKE '%". $mots[1] ."%' OR contenu LIKE '%". $mots[1] ."%' ";
}
$query .= " ORDER BY date ASC";
$reponse = mysql_query( $query ) or die( mysql_error() );
}
//...
$mot = ( $_POST['mot'] );
// Extraction des mots clefs
$mots = explode( " ", $mot );
$i = count( $mots )
{
$query = "SELECT * FROM table WHERE ";
for( $i = 0; $i < count( $mots ); $i++ )
{
$query .= "titre LIKE '%". $mots[0] ."%' OR contenu LIKE '%". $mots[0] ."%' ";
"AND titre LIKE '%". $mots[1] ."%' OR contenu LIKE '%". $mots[1] ."%' ";
}
$query .= " ORDER BY date ASC";
$reponse = mysql_query( $query ) or die( mysql_error() );
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Hydror34
Messages postés
1
Date d'inscription
vendredi 19 octobre 2012
Statut
Membre
Dernière intervention
19 octobre 2012
19 oct. 2012 à 14:23
19 oct. 2012 à 14:23
$query = "AND titre LIKE '%". $mots[0]."%' AND titre LIKE '%". $mots[1]."%'";
asmaanoor
Messages postés
73
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
20 janvier 2014
18
Modifié par asmaanoor le 20/10/2012 à 15:41
Modifié par asmaanoor le 20/10/2012 à 15:41
Assalamo 3laykom,
je pense que j'ai bien adapté ton code
$mot = ( $_POST['mot'] );
// Extraction des mots clefs
$mots = explode( " ", $mot );
$i = count( $mots );
$query = "SELECT * FROM table WHERE ";
for( $i = 0; $i < count( $mots ); $i++ ){
if($i==0)
{
$query .= "(titre LIKE '%$mots[$i]%' OR contenu LIKE '%$mots[$i]%') ";
}
else{
$query .="AND (titre LIKE '%$mots[$i]%' OR contenu LIKE '%$mots[$i]%' ) ";
}
}
$query .= " ORDER BY date ASC";
Bon courage ;)
je pense que j'ai bien adapté ton code
$mot = ( $_POST['mot'] );
// Extraction des mots clefs
$mots = explode( " ", $mot );
$i = count( $mots );
$query = "SELECT * FROM table WHERE ";
for( $i = 0; $i < count( $mots ); $i++ ){
if($i==0)
{
$query .= "(titre LIKE '%$mots[$i]%' OR contenu LIKE '%$mots[$i]%') ";
}
else{
$query .="AND (titre LIKE '%$mots[$i]%' OR contenu LIKE '%$mots[$i]%' ) ";
}
}
$query .= " ORDER BY date ASC";
Bon courage ;)