Page 1 sur 1
comparaison avec une variable, like ?
Posté : 07 juin 2007, 09:21
par manzzz
bonjour, je dois faire un test d'existance pour un nom et afficher la liste si oui (un formulaire d'ajout sinon)
donc je récupère le nom par :
mais pour la comparaison il faudrait que je puisse afficher toutes les entreprises ayant un nom ressemblant au nom rentré.
Faute de trouver j'ai:
Code : Tout sélectionner
$sql = "select * from entreprise where NomEntreprise=" . "'".$nom."'";
est ce que je peux utiliser like et comment?
Posté : 07 juin 2007, 09:47
par Genova
Tu peux utiliser like comme ceci dans ta requête :
WHERE mon_champ LIKE 'toto' -> cherche tous les champs contenant uniquement toto
WHERE mon_champ LIKE 'toto%' -> cherche tous les champs commencant par le mot toto avec ce qu'on veut ensuite
WHERE mon_champ LIKE '%toto' -> cherche tous les champs finissants par le mot toto, avec ce qu'on veut avant
WHERE mon_champ LIKE '%toto%' -> cherche tous les champs contenant le mot toto
PS: MySQL gère aussi l'opérateur REGEXP pour des recherches plus pointues ... mais c'est assez lourdingue.
Posté : 07 juin 2007, 10:06
par manzzz
oui mais le problème c'est que $nom est une varaible, son contenu est "aléatoire", je peux écrire la requête de la même manière que si c'était 'toto' ?
Posté : 07 juin 2007, 10:28
par Genova
Oui, comme ceci :
$sql = 'SELECT * FROM ta_table WHERE ton_champ LIKE \'%' . mysql_real_escape_string($ta_variable) . '%\'';
par exemple
Posté : 07 juin 2007, 10:35
par manzzz
ça ne marche pas
Code : Tout sélectionner
$sql = "select * from entreprise where NomEntreprise LIKE '%'" . mysql_real_escape_string($nom). "'%'" ;
Posté : 07 juin 2007, 10:39
par Genova
Code : Tout sélectionner
$sql = "select * from entreprise where NomEntreprise LIKE '%" . mysql_real_escape_string($nom). "%'" ;
plutôt.
Posté : 07 juin 2007, 10:40
par ouckileou
ça ne marche pas
Cette phrase seule est
strictement inutile
Pourquoi ça ne marche pas : message d'erreur ? résultat qui ne correspond pas à ce que tu attends ?
B*rdel ! donnez un max d'infos, il est trop difficile d'avoir à deviner ce qui ne va pas pour vous aider !!!
Posté : 07 juin 2007, 10:41
par Cyrano
ça ne marche pas
C'est le genre de réponse typique inutile. Heureusement que tu as eu la bonne idée de nous ajouter le code. Le message d'erreur obtenu aurait été encore plus intéressant, surtout pour toi.
Correction probable :
$sql = "select * from entreprise where NomEntreprise LIKE '%". mysql_real_escape_string($nom) ."%'" ;
Posté : 07 juin 2007, 10:43
par manzzz
arf désolée pour le dérangement
merci ^^
Posté : 07 juin 2007, 13:32
par Cyrano
As-tu noté la différence entre ta requête et la correction ? Sais-tu pourquoi maintenant ça fonctionne ? Parce que l'intéressant est là

Posté : 12 juin 2007, 14:22
par manzzz
oui la c'est bon merci

j'ai tendance a m'emmeler un peu les pinceaux avec les simple et double quotes...:s
Posté : 12 juin 2007, 14:27
par orgerix
utilise un logitiel avec coloration syntaxique, ca t'aidera beaucoup.