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

Requêtes MySQL Discussion :

Aide rédaction des conditions dans where clause


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Points : 191
    Points
    191
    Par défaut Aide rédaction des conditions dans where clause
    Bonjour à tous,

    je suis confronté à un problème assez simple, mais je bute dessus.

    J'ai une table comportant trois champs, id, attributs et nom et mes requêtes sont exécutées depuis php.

    En fait je fait plusieurs passes, à chaque fois, je stocke des noms dans un array en fonction des attributs.

    Et je voudrais qu'à la passe suivante mysql me retourne les résultats en y éliminant ceux dont le nom est stocké dans mon array, le tout si possible en une seule requête (avec sous requête ?).

    Je sais que mon problème comporte également du php, mais le gros bout, c'est la requête.

    Pour éclaircir, voici une example:

    nom: bob1, bob2, bob3, bob4, bob5, bob6, bob7

    PASSE1:
    on réccupère bob3 et bob6 que l'on stock dans un array

    PASSE2:
    on réccupère bob2 et bob1, bob6 correspondait également, mais vu qu'il est stocké dans l'array, il n'est pas retourné. On a donc seulement bob2 et bob1.

    En vous remerciant.
    Quelques conseils:

    Utilisez <?php plutôt que <?
    Utilisez des ' et la concaténation plutôt que "
    Pensez à revenir à la ligne après chaque ; pour plus de clarté.
    // Commentez votre code un maximum

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    Points : 95
    Points
    95
    Par défaut
    je pense qu doins si j'ai bien compris , pourquoi ne pas faire une requete avec du php du style :

    echo "SELECT nom FROM matable ";

    si tableau non vide
    {
    echo "WHERE nom<>"$nomTableau[0]";
    tant que on n'est pas a la fin du tableau
    {
    $i=1;
    echo "AND nom<>$nomTableau[$i]"
    }
    }


    je suis pas tres bon en php alors a toi d'adapter ce script wanénépypy
    Eu gosto de trabalhar porque trabalhar faz bem,
    mas gosto mais de descanso que nao faz mal a ninguem

  3. #3
    Membre confirmé Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Points : 570
    Points
    570
    Par défaut
    Es-tu obligé de procédé en plusieurs passes ?

    Si oui tu peux utiliser la clause not in dans ta requette MySQL lorsque tu la construiras avec ton script PHP.
    "Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    Points : 95
    Points
    95
    Par défaut
    c'est vrai not in est mieux, nounetmasque bien joué, je l'avais zappé celle ci
    Eu gosto de trabalhar porque trabalhar faz bem,
    mas gosto mais de descanso que nao faz mal a ninguem

  5. #5
    Membre habitué Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Points : 191
    Points
    191
    Par défaut
    Bonjour, merci de m'avoir répondu,

    finalement j'ai procédé avec NOT et un parenthèse dans lequel je rajoute des OR nom="$var" grâce à php et ça marche plutôt bien.

    En sachant que le script ne tourne qu'en local, je n'ai pas besoin d'optimiser bien plus.

    En vous remerciant.
    Quelques conseils:

    Utilisez <?php plutôt que <?
    Utilisez des ' et la concaténation plutôt que "
    Pensez à revenir à la ligne après chaque ; pour plus de clarté.
    // Commentez votre code un maximum

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

Discussions similaires

  1. Ordre des conditions dans une clause WHERE, important ou pas en 2012 ?
    Par clavier12AZQSWX dans le forum Langage SQL
    Réponses: 5
    Dernier message: 07/03/2012, 12h54
  2. [MySQL] Influence de l'ordre des conditions dans la clause WHERE
    Par morgan47 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 09/02/2012, 23h46
  3. Réponses: 3
    Dernier message: 18/09/2006, 21h55
  4. Réponses: 4
    Dernier message: 10/05/2006, 19h40
  5. Ordre des tests dans la clause WHERE
    Par Tans98 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 22/09/2004, 11h52

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