IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

requete conditionnelle si rien dans le form [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut requete conditionnelle si rien dans le form
    Bonjour et bon été.

    Y a-t-il moyen de faire une requête pour avoir ceci:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM paginate WHERE name LIKE :name
    SELECT * FROM paginate
    de manière à faire ressortir le 2e si je ne mets rien
    dans mon formulaire?

    note: requête préparé en PDO.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    avec un if{}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = 'SELECT * FROM paginate'
    $paral = array();
    if (isset($_POST['name'])) {
       $sql .= ' WHERE  name LIKE :name';
       $param[':name'] = $_POST['name'];
    }
    $sth = $cnx->prepare($sql);
    $sth->execute($param);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Merci Sabotage.

    En SQL comme tel il n'y a pas de façon de placer une conditionnelle?

    Mon code actuel est de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $artiste = !empty($_POST['artiste']) ? $_POST['artiste'] : NULL;
     
    $artiste = filter_var($artiste, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_STRIP_HIGH);
     
    $results = $dbh->prepare(' SELECT * FROM paginate WHERE name LIKE :name ');
    $results->bindParam(':name', $artiste, PDO::PARAM_STR, 25);
    $results->execute($param);
    C'est pour ça que je demandais si en sql on pouvait le faire.
    Si non, je vais devoir m'adapter. Dans ce cas, adapter votre
    solution à la mienne. L'ordre des lignes doit être importante.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne vois pas ce qui te gêne avec ce que je t'ai proposé.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    En essayant d'adapter à ce que j'ai déjà, ça pas fonctionner.
    Et j'utilise aussi du jquery.

    Alors, la solution que j'ai trouvée est de tester si c'est "empty"
    et si oui, je mets un "%" pour que ça sélectionne tout dans la base.

    Et après, j'utilise un regexp pour remplacer le "%" en rien du tout.
    Puis, je remplace le rien du tout par une mot qui dit bienvenue.

    Donc, si mon critère :name a quelque chose, ça va afficher selon
    mon critère si non, ça va afficher mon bienvenue.

    Le "%" passe par un filtre PHP et celui du PDO pour éviter les fails.

    C'est une solution qui marche dans ce cas.

    Mais votre solution, va me servir dans un autre cas.

    Merci tout de même.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a pourtant quasimment rien à adapter.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $artiste = !empty($_POST['artiste']) ?  filter_var($_POST['artiste'], FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_STRIP_HIGH) : NULL;
    $param = array();
     
    $sql = 'SELECT * FROM paginate';
     
    if (!empty($artiste)) {
       $sql .= ' WHERE  name LIKE :name';
       $param[':name'] = $_POST['name'];
    }
     
    $results = $dbh->prepare($sql);
    $results->execute($param);
    J'ai rassemblé tes deux première lignes, sinon tu fais le FILTER y compris dans le cas NULL, ce qui ne sert pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Access ] Requete conditionnel dans un UPDATE??
    Par nicko5959 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 28/06/2006, 05h39
  2. [C#] Problème de requetes en Sql dans une form fille
    Par padodanle51 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/05/2006, 11h32
  3. [Debutant]recupere les données d'un requete dans le form
    Par [thebadskull] dans le forum Access
    Réponses: 1
    Dernier message: 04/05/2006, 10h53
  4. pb critère sql dans une requete basée sur controle d'un form
    Par STANDBOY dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 27/02/2006, 16h17
  5. Liste déroulante sur requete ? rien dans la FAQ
    Par Cablan dans le forum Access
    Réponses: 2
    Dernier message: 26/10/2005, 09h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo