comparaison avec une variable, like ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : comparaison avec une variable, like ?

par orgerix » 12 juin 2007, 14:27

utilise un logitiel avec coloration syntaxique, ca t'aidera beaucoup.

par manzzz » 12 juin 2007, 14:22

oui la c'est bon merci :)
j'ai tendance a m'emmeler un peu les pinceaux avec les simple et double quotes...:s

par Cyrano » 07 juin 2007, 13:32

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à ;)

par manzzz » 07 juin 2007, 10:43

arf désolée pour le dérangement :oops:
merci ^^

par Cyrano » 07 juin 2007, 10:41

ç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) ."%'" ;

par ouckileou » 07 juin 2007, 10:40

ç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 !!!

par Genova » 07 juin 2007, 10:39

Code : Tout sélectionner

$sql = "select * from entreprise where NomEntreprise LIKE '%" . mysql_real_escape_string($nom). "%'" ;
plutôt.

par manzzz » 07 juin 2007, 10:35

ça ne marche pas

Code : Tout sélectionner

$sql = "select * from entreprise where NomEntreprise LIKE '%'" . mysql_real_escape_string($nom). "'%'" ;

par Genova » 07 juin 2007, 10:28

Oui, comme ceci :
$sql = 'SELECT * FROM ta_table WHERE ton_champ LIKE \'%' . mysql_real_escape_string($ta_variable) . '%\'';
par exemple

par manzzz » 07 juin 2007, 10:06

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' ?

par Genova » 07 juin 2007, 09:47

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.

comparaison avec une variable, like ?

par manzzz » 07 juin 2007, 09:21

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 :

Code : Tout sélectionner

$nom=$_POST['NomEntreprise'];
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?