parse error, unexpected T_CONSTANT_ENCAPSED_STRING

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

06 juil. 2005, 17:36

Y a-t-il une colonne mots_cles ?
===> NON !

Alors pourquoi la mettre dans ta requête ?


SELECT * FROM cv WHERE 1 AND mot_cles LIKE '%compt%'

Eléphant du PHP | 66 Messages

06 juil. 2005, 17:37

Bein tu n'as pas de champ mot_cles donc il ne saurai pas te trouver un resultat.

ViPHP
pjl
ViPHP | 2119 Messages

06 juil. 2005, 17:44

airbem, ca fait 2 fois que mere-teresa corrige tes posts pour mettre ton code PHP en valeur.
Tu pourrais faire l'effort de le faire toi-même.
Le bouton PHP n'est quand même pas si loin que celà du bouton Code.

Eléphanteau du PHP | 29 Messages

06 juil. 2005, 17:54

Je me suis inspirer de ce script.
http://www.phpinfo.net/articles/article_moteur.html.
Du coup je sais pas comment faire avec "mot_cle" qui ne correspond pas au contenu de ma table.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

06 juil. 2005, 17:59

#-o
](*,)
:boire4:
8-[
Je passe la main à quelqu'un d'autre.
Modifié en dernier par mere-teresa le 06 juil. 2005, 18:00, modifié 2 fois.

Eléphant du PHP | 66 Messages

06 juil. 2005, 17:59

oui donc deja ton tout premier probleme a mal été résolu, puisque c'est
$mots = str_replace('\'', ' ', $mots);
que tu dois mettre et pas
$mots = str_replace('\\', ' ', $mots);
Ensuite le gars il a crée un champ mot_clés pour chaque enregistrement de sa table.

Reste a savoir dans quels champs tu veux effectuer ta recherche.

Eléphanteau du PHP | 29 Messages

06 juil. 2005, 18:03

moi ce que je veut c'est faire une recherche sur tous les champs .

Eléphanteau du PHP | 29 Messages

06 juil. 2005, 18:11

#-o
](*,)
:boire4:
8-[
Je passe la main à quelqu'un d'autre.
Avant j'avais deja un petit moteur de recherche . dont voic le code
<?
$db = mysql_connect('*****', '********', '****');
mysql_select_db('base1',$db); 


if(isset($_GET['recherche'])) 
{ 
  if($_GET['recherche']=='') 
  { 
    echo"<h2>Recherche</h2>"; 
    echo"Veuillez saisir un critère de recherche"; 
  } 
  elseif(strlen($_GET['recherche'])<3) 
  { 
    echo"<h2>Recherche</h2>"; 
    echo"Veuillez saisir un critère de recherche de plus de 3 caractères"; 
  }

$recherche=$_GET['recherche']; 

//mysql_select_db('my64035',$db); 
$sqlquery=  "SELECT * FROM cv WHERE titre LIKE '%$recherche%' OR ref LIKE '%$recherche%' OR nom LIKE '%$recherche%' OR prenom LIKE '%$recherche%' OR sex LIKE '%$recherche%' OR ville LIKE '%$recherche%' OR date_dispo LIKE '%$recherche%' OR ville LIKE '%$recherche%' OR fonction LIKE '%$recherche%' OR niveau LIKE '%$recherche%' OR region1 LIKE '%$recherche%' OR nom_entr1 LIKE '"; 
$result = mysql_query($sqlquery);
$number = mysql_numrows($result);
if($number <=0) 
    { 
      echo"<br>Aucun résultat trouvé dans la base de donnée<br><br>"; 
    } 

}


?>
Celui ci marche trés bien mais le probleme c'est qu'il prend pas en compte plusieur mot clé.

je m'explique : dans le champ de la recherche si je mettais plus d'un mots , je n'avais aucun resultat.

Eléphant du PHP | 66 Messages

06 juil. 2005, 18:19

comprend tu ton code ?

parceque tu as ta requête ici
$sql = "select * from cv where 1 and mot_cles like '%".$tab[0]."%' ";
on te dis que tu n'as pas de champ mot_cles et que tu dois faire la recherche dans tes propres champs.

Si tu comprenai un minimum ton code tu n'aurai aucune difficulté a modifier cette ligne pour resoudre ton probleme.

vas faire un tour ici http://www.phpdebutant.org/article117.php tu comprendra mieux je pense.

Eléphanteau du PHP | 29 Messages

06 juil. 2005, 18:39

J'ai bien compris que c'est ma requet qui pose probleme
$sql = "select * from cv where 1 and mot_cles like '%".$tab[0]."%' "; 
et que je dois modifier " mot_cles" par un champ qui existe dans ma table .mais le probleme et que je souhaite faire une recherche sur l'ensemble des champs de ma table et non pas sur un seul champ. c'est là où ça se complique (pour moi).

ViPHP
pjl
ViPHP | 2119 Messages

06 juil. 2005, 22:39

commence par un champ et on verra pour la suite.
Mais fais déjà une requête qui marche.

Ca ne sert à rien de conserver une requête fausse.

Eléphanteau du PHP | 29 Messages

07 juil. 2005, 10:08

Bonjour

j'ai remplacé mot_clé par un champ existant dans ma base , la requet marche . le probleme est que la recherche ne ce fait pas sur l'ensemble des champs de ma base. :? .

Je crois que je vais revenir a mon ancien code qui marche bien. mais le probleme et c'est la raison pour laquel j'ai voulu le changer par "voir le code en haut".
C'est dans le champ qui me permet de saisir l'information que je souhaite trouver , je ne peut mettre qu'un mot clé .
Exemple si je met dans le champ : Dubois
j'ai un resultat qui s'affiche (toutes les info sur Duboi ,son prenom Alain , sa ville ......).

mais si je met : Dubois Alain
je n'ai aucun resultat .


Voila je ne sais pas comment faire pour que ce programme prenne en consideration plusieurs mot cle.
<?
isset($_GET['recherche'])) 
{ 
 if($_GET['recherche']=='') 
 { 
   echo"<h2>Recherche</h2>"; 
   echo"Veuillez saisir un critère de recherche"; 
 } 
 elseif(strlen($_GET['recherche'])<3) 
 { 
   echo"<h2>Recherche</h2>"; 
   echo"Veuillez saisir un critère de recherche de plus de 3 caractères"; 
 }

$recherche=$_GET['recherche']; 

$sqlquery=  "SELECT * FROM cv WHERE titre LIKE '%$recherche%' OR ref LIKE '%$recherche%' OR nom LIKE '%$recherche%' OR prenom LIKE '%$recherche%' OR adresse LIKE '%$recherche%' OR ville LIKE '%$recherche%' "; 
$result = mysql_query($sqlquery);
$number = mysql_numrows($result);
if($number <=0) 
   { 
     echo"<br>Aucun résultat trouvé dans la base de donnée<br><br>"; 
   } 

}

?> 
Et encor MERCI pour votre aide