Problème avec une requête avec concaténation

Fermé
luke590 - 30 oct. 2013 à 10:34
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 - 3 déc. 2013 à 15:46
Bonjour,

J'ai un souci, je suis en train de faire une barre de recherche, mes produits dans la bdd sont des voitures pour le moment lorsque je recherche clio ou renault tout seul il les trouvent mais si je mets la combinaison des deux cela ne fonctionne pas, du coup j'ai pensé à concaténé les deux champs marque et modèle de voiture dans la requête et comparer l'expression recherché à cette concaténation mais lorsque j'essaye il y a une du type :

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\search.php on line 33

Voici ma requête, comment je pourrais procéder, merci d'avance.

select marque,modele,energie,couleur,km,prix, CONCAT( marque, ' ', modele ) AS expression
from offres
where validation="1" and
SOUNDEX(marque) LIKE SOUNDEX("%'.$recherche.'%") or
SOUNDEX(modele) LIKE SOUNDEX("%'.$recherche.'%") or
SOUNDEX(energie) LIKE SOUNDEX("%'.$recherche.'%") or
expression LIKE "%'.$recherche.'%"'

9 réponses

Utilisateur anonyme
30 oct. 2013 à 11:17
Bonjour

Donne nous l'instruction php complète car ton problème vient d'un mélange de ' et de ". Il nous faut la ligne complète pour pouvoir corriger.
Mais il y a gros à parier que tu as entouré ta requête de simple quotes ' et que donc ton CONCAT( marque, ' ', modele ) doive être remplacé par CONCAT( marque, " ", modele )
0
Effectivement (j'étais mal réveillé ce matin ^^), mais il persiste un problème maintenant j'ai l'erreur :

Unknown column 'expression' in 'where clause'
0
Utilisateur anonyme
30 oct. 2013 à 11:29
Et le message Unknown column 'expression' in 'where clause' ne veut rien dire pour toi ? Tu n'envisages pas de faire l'effort de le comprendre tout seul ?
0
bah si je le comprends, il ne connaît pas 'expression' dans le where mais du coup, comment faire ? j'ai mal déclaré un truc ? ou oublié quelque chose ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
30 oct. 2013 à 11:34
Pourquoi avais-tu écrit "expression" à cet endroit là ? Qu'est-ce que ça voulait dire ?
0
J'ai renommé le concat() en expression et je voulais le comparer dans le where avec le mot tapé dans le champ recherche, mais c'est peut-être pas possible de le faire comme ça ?
0
Utilisateur anonyme
30 oct. 2013 à 11:48
Hélas non, ce n'est pas toujours possible d'utiliser l'alias d'une expression dans la clause WHERE
0
Dommage ...
Merci de tes réponses et de ta patience ^^
0
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
3 déc. 2013 à 15:46
Bonjour,
Au final, as-tu réussi à faire ce que tu voulais ?
0