Probleme avec clause WHERE

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 : Probleme avec clause WHERE

par bravegars » 15 mars 2006, 20:19

Merci Cyrano, j'ai résolu mon problème. :)

par Cyrano » 15 mars 2006, 11:12

Alors dans ce cas, tu peux faire quelqe chose comme:
$sql = "...
WHERE champ1 LIKE '%". $prix ."%' 
OR champ2 LIKE '%". $prix ."%' 
OR champ3 LIKE '%". $prix ."%' 
OR champ4 LIKE '%". $prix ."%' 
OR champ5 LIKE '%". $prix ."%';";

par bravegars » 15 mars 2006, 08:39

Bonjour,

Merci pour tes explications Cyrano.
Le problème c'est que j'y connais rien aux expressions régulières et même après avoir lu la page que tu m'as conseillé je ne sais absolument pas quoi mettre après le REGEXP.

Est-ce qu'il n'est pas possible de faire une recherche sur tous les champs qui m'intéresse apres la clause WHERE, ça m'évitera de me casser la tête sur les expressions regulieres ?

WHERE (champ1,champ2,champ3,champ4)='$prix'

Je sais que cet exemple n'est pas correct mais c'est ce que je voudrais si c'est possible. Merci

par Cyrano » 14 mars 2006, 22:03

Le problème est dans ta clause WHERE :
Si on décortique une requête de ce type, on a:
- SELECT "nom d'une ou plusieurs colonnes"
- FROM "nom d'une ou plusieurs tables"
- WHERE "nom d'une colonne" (= | > | < | LIKE | REGEXP | ...) "valeur de comparaison"

Entre "WHERE" et "REGEXP" dans ta requête, tu utilises une valeur et non le nom d'une colonne;
La valeur attendue après "REGEXP" doit être une expression régulière et donc respecter une syntaxe particulière

As-tu regardé un peu la doc sur l'utilisation de REGEXP ?

Probleme avec clause WHERE

par bravegars » 14 mars 2006, 21:39

Bonsoir,

Je voudrais rechercher un mot dans une table et récupérer un tableau avec toutes les lignes qui contienent ce mot. Mais j'y arrive pas... grrr

Voilà le code que j'ai :

Code : Tout sélectionner

$prix="douze"; $mareq = "SELECT centre FROM clubmed WHERE '$prix' REGEXP '$prix'"; $dev = mysql_query ($mareq) or die ('Erreur SQL !'.$sql.'<br>'.mysql_error()); $tab = mysql_fetch_array($dev);
En fait je recherche tous les champs de la table clubmed qui contienent $prix, et je voudrais récupérer toutes les lignes correspondantes en prenant le champ centre comme valeurs dans le tableau. :(