bonjour à vous,
j essai de mettre en place une barre de recherche mais j ai quelque difficulté pour la conception
j ai reussi a la faire fonctionné mais seulement si y a un seul mot en faisant ceci
ensuite en parcourant le net j ai trouvé une chose qui marche sur plusieur mots mais je n arrive pas a mettre en place car la ca fonctionne que sur un seul champ de ma table (exemple seulement la Marque) en faisant ceci
je ne sais pas comment combiner les 2 vu que je souhaite une recherche sur la table qui se presente sous cette forme
ID
Marque
Modele
Gamme
etc.. j ai 35 colonnes dont je souhaite rechercher
j ai essayé avec un fulltext
mais #1191 - Can't find FULLTEXT index matching the column list
j ai essayé une chose comme ceci
mais erreur sql et en parcourant le net j ai cru comprendre que l on peut pas mettre un IN avec un LIKE
voila , je vous remercie d avance pour l aide apporté
j essai de mettre en place une barre de recherche mais j ai quelque difficulté pour la conception
j ai reussi a la faire fonctionné mais seulement si y a un seul mot en faisant ceci
if (isset($_POST['action']))
$_SESSION['critere'] = $_POST;
if(isset($_SESSION['critere']))
extract($_SESSION['critere']);// extraction des critères de recherche
$choix = array();
if(isset($Keyword) && !empty($Keyword))
{$choix[] = "Marque LIKE '%$Keyword%'";}
{$choix[] = "Modele LIKE '%$Keyword%'";}
{$choix[] = "Gamme LIKE '%$Keyword%'";}
$critere = implode(' OR ', $choix);
$requete = "select * ,(Marque) AS Marque from batterie WHERE $critere ORDER BY Marque ASC";
$reponse = mysql_query( $requete ) ;
ensuite en parcourant le net j ai trouvé une chose qui marche sur plusieur mots mais je n arrive pas a mettre en place car la ca fonctionne que sur un seul champ de ma table (exemple seulement la Marque) en faisant ceci
if (isset($_POST['action']))
$_SESSION['critere'] = $_POST;
if(isset($_SESSION['critere']))
extract($_SESSION['critere']);// extraction des critères de recherche
$choix = array();
if(isset($Keyword) && !empty($Keyword))
{$choix[] = "Marque";} // j ai supprimé les autres champs car sinon ma requete donne une erreur sql
$critere = implode(' ', $choix);
$mots = explode( " ", $Keyword );
if( count( $mots ) > 0 )
$requete = "select * ,('Marque') AS Marque from batterie WHERE";
for( $i = 0; $i < count( $mots ); $i++ ) {
//$requete .= "$critere ";
$requete .= " $critere LIKE '%". $mots[$i] ."%' ";
if( $i < count( $mots ) - 1 )
$requete .= " OR ";}
$requete .= " ORDER BY Marque";
$reponse = mysql_query( $requete ) ;
je ne sais pas comment combiner les 2 vu que je souhaite une recherche sur la table qui se presente sous cette forme
ID
Marque
Modele
Gamme
etc.. j ai 35 colonnes dont je souhaite rechercher
j ai essayé avec un fulltext
select * from batterie WHERE MATCH(Marque,Modele,Gamme) AGAINST('exide') ORDER BY Marque
mais #1191 - Can't find FULLTEXT index matching the column list
j ai essayé une chose comme ceci
$requete = "select * ,('Marque') AS Marque from batterie WHERE ID IN($critere)";
for( $i = 0; $i < count( $mots ); $i++ ) {
//$requete .= "$critere";
$requete .= " LIKE '%". $mots[$i] ."%' ";
if( $i < count( $mots ) - 1 )
$requete .= " OR ";
}
$requete .= " ORDER BY Marque";
mais erreur sql et en parcourant le net j ai cru comprendre que l on peut pas mettre un IN avec un LIKE
voila , je vous remercie d avance pour l aide apporté