Simple requête SQL avec clause WHERE

amewole
Messages postés
108
Date d'inscription
jeudi 23 mars 2006
Statut
Membre
Dernière intervention
28 février 2013
- 27 avril 2006 à 21:24
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
- 2 mai 2006 à 13:01
Dans une requête SQL  de type :
SELECT   nom, prenom  From  matable  WHERE  code_art =  code_XXX  ;

Sachant que code_XXX peut être renseigné ou pas du tout,  je veux savoir comment faire cette requête sans être obligé de tester d'abord si code_XXX  est  renseigné ou pas ou encore s'il contient une information valide.

Merci. 

6 réponses

coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
27 avril 2006 à 22:55
Salut,

$req='SELECT   nom, prenom  From  matable  '.((isset($code_XXX))?'WHERE  code_art =  '.$code_XXX:'');

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
amewole
Messages postés
108
Date d'inscription
jeudi 23 mars 2006
Statut
Membre
Dernière intervention
28 février 2013

27 avril 2006 à 23:14
Ok !! je vais l'essayer ..
Merci d'avance.
0
amewole
Messages postés
108
Date d'inscription
jeudi 23 mars 2006
Statut
Membre
Dernière intervention
28 février 2013

28 avril 2006 à 03:35
C'est Ok pour le premier  where mais dès que j'ai ajouté d'autres conditions alors plus rien ne marche :
Je m'explique : il y a dans la clause where d'autres choses en plus par exemple

$req= 'SELECT   nom, prenom  From  matable 
                    '.((isset($code_XXX))?'        WHERE  code_art    =   '.$code_XXX:'')         AND
                    '.((isset($num_art_XXX))?'  WHERE  num_art     =   '.$num_art_XXX:'')   AND
                    '.((isset($categ_XXX))?'       WHERE  categ_art   =   '.$categ_XXX:'') ;

Il faut dire que je n'arrive pas à comprendre les nombreux guillements ...
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
28 avril 2006 à 09:17
Salut,

$req= 'SELECT   nom, prenom  From  matable 
                    '.((isset($code_XXX))?'        WHERE  code_art    =   '.$code_XXX:'') .

((isset($num_art_XXX))?(isset($code_XXX)?' AND ': ' WHERE ')' num_art     =   '.$num_art_XXX:'').

((isset($categ_XXX))?(isset($num_art_XXX.$code_XXX)?  ' AND ': ' WHERE ')'  categ_art   =   '.$categ_XXX:'') ;

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0

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

Posez votre question
amewole
Messages postés
108
Date d'inscription
jeudi 23 mars 2006
Statut
Membre
Dernière intervention
28 février 2013

28 avril 2006 à 14:10
En suivant votre modèle j'ai fait ma requête mais elle ne marche pas !!!

Voici la requête réelle :
$query = 'SELECT image_id, image_nom, image_desc1, image_vignette, image_photo, image_adresse, piece, xusage, type_bien 
          FROM  images
        '.((isset($piece))?'  WHERE  piece  = '.$piece:'').
         ((isset($type_bien))?(isset($piece)?' AND ': ' WHERE ')' type_bien     = '.$type_bien:'').
         ((isset($xusage))?(isset($piece.$piece)?  ' AND ': ' WHERE ')' xusage  = '.$xusage:'') ;

Par ailleurs voici aussi  ma reqête originale :
 $query = 'SELECT image_id, image_nom, image_desc1, image_vignette, image_photo, image_adresse, piece, xusage, type_bien 
          FROM  images
          WHERE
             piece         =  $piece      AND
             type_bien  =  $type_bien  AND
             xusage      =  $xusage ' ;
       
        

Merci d'avance.
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
2 mai 2006 à 13:01
Salut,

$query = 'SELECT image_id, image_nom, image_desc1, image_vignette, image_photo, image_adresse, piece, xusage, type_bien 
          FROM  images
        '.

((isset($piece))?
    '  WHERE  piece  = '.$piece:
    '').

((isset($type_bien))?
    (isset($piece)?
        ' AND ':
         'WHERE ').
    ' type_bien     = '.$type_bien:'').

((isset($xusage))?
    (isset($piece.$piece)?
        ' AND ': ' WHERE ').' xusage  = '.$xusage:
    '') ;

quand c'est compliqué, on sépare un minimum... indenter ça existe....

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0