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 :

Demande aide sur requete


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 135
    Points : 69
    Points
    69
    Par défaut Demande aide sur requete
    Bonjour,
    je cherche à effectuer une requête pour rechercher les sociétés sur plusieurs activités.

    J'ai une table contacts qui contient mes societes, une table dr_activites qui contient mes activites et une table de liaison dr_activites_contacts qui contient id_activite (INT) et id_contact (INT).

    Ainsi, j'insère pour chaque id_contact les differentes id_activite

    Depuis un select multiple, je parviens à rechercher tous les contacts ayant les activites

    voici mon code qui est fonctionnel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    	if(isset($_GET["dr_activites_contacts"]))
    	{
    		$filtres_activites=" dr_activites_contacts.id_activite IN (";
    		$act = 0;
    		$nb_act = count($_GET["dr_activites_contacts"]);
    		foreach($_GET["dr_activites_contacts"] as $valeur_activite)
    		{
    			if ($act == $nb_act - 1)
    			$filtres_activites.="'".$valeur_activite."'";
    			else
    			$filtres_activites.="'".$valeur_activite."',";
    			$act++;
    		} 
    		$filtres_activites.=") AND ";
    	}
    Seulement ce code permet de rechercher les contacts d'une activite ou une autre.

    Je voudrais faire ressortir uniquement les contacts dont l'activité est 1 ET 3 et 6 par exemple.

    J'ai essayé une requete de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM dr_activites_contacts WHERE  id_activite='2' AND id_activite='4'
    Mais ça ne marche pas.

    Quelle requête faire ?

    Merci.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2010
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Ca ne marche pas c'est à dire ?

    Et en partant sur une requête du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM dr_activites_contacts WHERE  id_activite IN ('2', '4')
    Ca ne pourrait pas fonctionner ?

    Attention au type aussi '2' != 2.

    abcd23

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 135
    Points : 69
    Points
    69
    Par défaut
    Bonjour,

    c'est ce que j'indique dans mon post, la notion de WHERE IN recherche une activité OU une autre mais pas sur l'existence des deux activités.

    id_activite id_contact
    2 37
    2 56
    4 61

  4. #4
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    ... mais pas sur l'existence des deux activités.

    id_activite id_contact
    2 37
    2 56
    4 61
    Le problème, c'est que cette table ne représente pas cela.
    Tu recherches : 1 contact ayant des activités différentes
    Cette table représente : Des activités communes pour 1 contact (ce n'est pas pareil).

    Quand on dit "les 2 activités" (donc un ET), il faut que pour 1 même ID de contact il y ait ces 2 activités différentes réunies (la 2 ET 4).

    Or, dans les données que tu donnes, les IDs de contact (id_contact) sont tous différents.
    Ca ne peut pas marcher.


    Il faut que cette notion là y soit quelque part, quelque chose comme :
    activite | contact
    2 | 20
    4 | 20
    ... etc ...


    Est ce que parmi tes données (tables), il y a quelque chose qui pourrait permettre de représenter cela ?
    (sinon faudrait le créer).

    Tout cela sauf erreur.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 135
    Points : 69
    Points
    69
    Par défaut
    Comme indique précédemment j ai bien id_activite et id_contact dans la table je remplis ainsi
    Client 1 -football et basket
    Client 2 - basket et tennis
    Client 3 basket tennis et football


    Ce qui revient dans la table à
    61 - 2
    61-3
    62 - 3
    62-5
    63 - 3
    65 - 3
    65 - 5
    65 - 2

    Si je cherche tous les clients dont activités est football et tennis
    Je recherche id_activite =2 et id_activite=5

    Comment faire cette requete ?

  6. #6
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Est tu certain que 2 et 5 correspondent à des IDs d'activités (id_activite) ?
    Il y aurait pas confusion sur les valeurs par rapport aux noms des champs ?

    Si je regarde ce que tu as mis dans ton post précédent, l'ordre des champs étaient :
    id_activite | id_contact
    2 | 37

    Si j'extrapole par rapport à ce que tu mets maintenant, 2 et 5 correspondraient à des "contact_id" et non des "activite_id".

    Donc normalement, et cette fois en tenant compte les valeurs de ton post ci-dessus, on rechercherait plutôt avec des valeurs comme : 61 ET 65 (2 activités différentes pour 1 contact (le 2), par exemple.


    Fais le point la dessus, car pour moi ce n'est pas clair.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 135
    Points : 69
    Points
    69
    Par défaut
    Ne te formalise pas sur le contenu, ce qui est important c'est la structure de la table et la requete.
    Cordialement.

  8. #8
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Ne te formalise pas sur le contenu
    Si tu penses que tes données représentent cela et qu'il n'y a pas de confusion, alors il faudrait faire un IN (2, 5) sur id_activites.

    Si on fait un ET, il faut que chaque ligne répondent à cet condition (ou clause).
    Or, il n'y a aucune ligne comportant à cela (il faudrait 2 champs ayant 2 IDs d'activités avec comme valeur 2 et 5 dans chaque champs).

    Le IN devrait récupérer les lignes (les contacts) :
    61 - 2
    62 - 5
    65 - 2
    65 - 5
    (à condition que la colonne 61, 62, etc ... soient des contacts et 2 et 5 des activités).

    Qu'est-ce qui ne va pas si tu fais cela ?


    Tout ça sauf erreur.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 135
    Points : 69
    Points
    69
    Par défaut
    Je reprends mon besoin :

    Sachant que je ne sais pas à l'avance combien d'activités va avoir un client, j'ai crée une table de liaison dr_activites_contacts qui me permet un ajout multiple d'activités pour un client :

    CREATE TABLE IF NOT EXISTS `dr_activites_contacts` (
    `id_activite` int(11) NOT NULL,
    `id_contact` int(11) NOT NULL,
    PRIMARY KEY (`id_activite`,`id_contact`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    Tu m'indiques qu'il faut faire un WHERE IN, comme indiqué plus haut, j'ai testé et WHERE IN permet de sélectionner tous les clients ayant les activités 2 OU 3 OU 4.

    Comment puis-je sélectionner tous les clients ayant les activités 2 et 3 et 4 ?

    Existe-t-il une solution par MYSQL sinon je vais être obligé de faire des boucles et encore des boucles en PHP

  10. #10
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 171
    Points : 106
    Points
    106
    Par défaut
    tu veux tout les clients ayant les activité 2,3 et 4 ou tous les clients qui ont l'activité 2 et tous les clients qui ont l'activité 3 et tous les clients qui ont l'activité 4 sans forcément avoir les autres ????

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 135
    Points : 69
    Points
    69
    Par défaut
    Ma demande de requête fait suite à un select multiple, donc je veux tous les clients qui ont par exemple :
    • l'activité 2 ET 3 ET 4
    • l'activité 5 ET 10
    • l'activité 16 ET 21 ET 45 ET 67


    Il doit me ressortir tous les id_contact qui ont des activités 2 ET 3 ET 4.

  12. #12
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 171
    Points : 106
    Points
    106
    Par défaut
    j'aurais dis une requête avec des jointure spéciale comme des outer ou left ou right JOIN....

    envoi moi le SQL de tes tables avec tes valeurs en questions pour que je test.....

  13. #13
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Ah, ça y est, je vois.
    (j'comprend vite mais faut expliquer longtemps )

    Mais là, comme ça, je ne vois pas vraiment comment faire.

    Je tentes quelques essai rapides avec peu de données (fictives) mises dans une table (fictives).
    Essai ceci pour voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM contacts WHERE id_activite IN (2, 5)
    GROUP BY id_activite
    HAVING COUNT(id_activite) = 2
    ORDER BY id_contact
    L'idée est d'imposer le même nombre d'activités.
    S'il y en a 2 alors : HAVING COUNT(id_activite) = 2
    Si 3 activités : HAVING COUNT(id_activite) = 3
    etc ...
    Est-ce que l'idée est bonne ???
    (sans garanti )

    Faut que j'essaie avec plusieurs contacts ayant les mêmes activités.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  14. #14
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Et ce n'est pas la peine d'essayer cette requête c-dessus, ça fonctionne pas du tout comme je l'aurais espéré.

    Je passe le relais à ce qui savent faire ce genre de requêtes de ouf.
    Je suis curieux de voir par la même occasion.


    @cragoroth
    J'ai essayé avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    --
    -- Structure de la table `contacts`
    --
     
    CREATE TABLE IF NOT EXISTS `contacts` (
      `id_contact` int(2) NOT NULL,
      `id_activite` int(2) NOT NULL,
      PRIMARY KEY (`id_contact`,`id_activite`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     
    --
    -- Contenu de la table `contacts`
    --
     
    INSERT INTO `contacts` (`id_contact`, `id_activite`) VALUES
    (61, 2),
    (61, 3),
    (62, 2),
    (62, 3),
    (62, 5),
    (63, 3),
    (65, 2),
    (65, 3),
    (65, 5);
    Théoriquement (et si j'ai bien compris), la requête devrait ressortir :
    (62, 2)
    (62, 5)
    et
    (65, 2)
    (65, 5)
    C'est à les 2 contacts (62 et 65) ayant tous les 2 les mêmes activités (2 ET 5)
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  15. #15
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 171
    Points : 106
    Points
    106
    Par défaut
    en ce qui me concerne j'ai essayer sur ma base de données car je peux l'adapter...

    j'ai ceci :

    Id_utilisateur | id_offre_emploi
    8903 | 2090
    82 | 2090
    82 | 2096
    8976 | 2090
    8976 | 2096

    Je retrouve bien mes 2 contact qui ont les 2 offre d'emploi mais j'ai aussi un contact qui n'a qu'une seule offre d'emploi.....

    Donc la requête n'est pas totalement fausse mais dans ta base si tu n'a aucun résultat c'est que le problème vient de tes donner....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT
    *
    FROM
    reponse_offre
    LEFT JOIN offreemploi ON reponse_offre.id_offre_emploi = offreemploi.id_offre_emploi
    WHERE
    reponse_offre.id_offre_emploi IN (2090, 2096)
    il faut que tu essaye le left join je pense


    Lol j'avais pas vu mais tu n'a qu'une seule table ???

    Si tu as d'autre table cela peut peut-être nous aider ???

  16. #16
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 171
    Points : 106
    Points
    106
    Par défaut
    Je ne vois pas du tout mis à part la requête simple avec le in, qui ramène un AND et un OU en même temps....

    bonne chance

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 135
    Points : 69
    Points
    69
    Par défaut
    Je viens de tester à partir des contenus suivant :

    CREATE TABLE IF NOT EXISTS `dr_activites_contacts` (
    `id_activite` int(11) NOT NULL,
    `id_contact` int(11) NOT NULL,
    PRIMARY KEY (`id_activite`,`id_contact`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    --
    -- Contenu de la table `dr_activites_contacts`
    --

    INSERT INTO `dr_activites_contacts` (`id_activite`, `id_contact`) VALUES
    (1, 46),
    (1, 49),
    (1, 52),
    (1, 59),
    (2, 37),
    (2, 46),
    (2, 49),
    (2, 56),
    (3, 46),
    (3, 49),
    (3, 61),
    (4, 46),
    (4, 49),
    (4, 61),
    (5, 46),
    (5, 49),
    (5, 60),
    (7, 46),
    (7, 49),
    (8, 46),
    (8, 49),
    (9, 46),
    (9, 49),
    (10, 46),
    (10, 49),
    (10, 61),
    (11, 46),
    (11, 49);

    Et avec la requete :

    SELECT * FROM contacts WHERE id_activite IN (2, 5)
    GROUP BY id_activite
    HAVING COUNT(id_activite) = 2
    ORDER BY id_contact
    C'est fonctionnel lorsque je recherche sur 3 activites, mais lorsque je recherche sur 2 activités (exemple 1 et 2) et bien il ne trouve rien.

    Bizarre ce comportement.

  18. #18
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Il me semble avoir trouvé comment faire, (en me basant sur les données que tu as donné dernièrement), sans garantie quand même.
    Les données en question m'ont permis de tester uniquement sur des activités communes au nombre de 2, et 3 (il n'y a pas plus).

    Apparemment, il ne fallait pas faire le regroupement (GROUP BY) sur "id_activite", mais sur "id_contact".
    Ca me semble normal car si on regroupe sur l'id_activité, ça devient incohérent vu qu'on recherche au moins 2 activités, ou au moins 3, etc ... selon le cas.
    Puis c'est théoriquement 1 contact pour 2 (ou 3, ou 4) activités réunis qu'on recherche, cela à chaque contact.


    La requête pour 3 activités communes (3, 4, 10) :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT COUNT(id_activite) AS nb_activite, id_activite, id_contact
    FROM activites_contacts
    WHERE id_activite IN (3, 4, 10)
    GROUP BY id_contact
    HAVING COUNT(id_activite) = 3
    ORDER BY id_contact
    Ceci me ressort les id_contacts : 46, 49, 61
    C'est bien les 3 seuls contacts ayant ces 3 activités communes.

    La requête pour 2 activités communes (3, 10) :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT COUNT(id_activite) AS nb_activite, id_activite, id_contact
    FROM activites_contacts
    WHERE id_activite IN (3, 10)
    GROUP BY id_contact
    HAVING COUNT(id_activite) = 2
    ORDER BY id_contact
    Ceci me ressort les id_contacts : 46, 49, 61
    C'est bien les 3 seuls contacts ayant ces 2 activités communes.

    Ou encore les activités 2 et 5. Contacts : 46 49


    Dans la requête j'y ai mis le champ "id_activité", mais c'est théoriquement absurde de le mettre, car d'une part les activités sont forcements connus vu que ce sont eux qu'on recherche, puis MySQL ne peu que mettre qu'1 seule parmi les 2 ou 3 ou 4, etc ... (selon le cas) à chaque ligne.
    Il ne faut pas le mettre dans le SELECT normalement.


    Maintenant faut voir sur des données plus variées.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  19. #19
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    MySQL étant trop permissif, il vous autorise des choses qui peuvent donner des erreurs.
    On le dit et le répète dans le forum MySQL : Les colonnes du SELECT ne faisant pas l'objet d'une fonction de regroupement (COUNT, MIN, MAX, AVG, SUM) doivent toutes figurer dans le GROUP BY.

    La bonne requête :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT id_contact
    FROM activites_contacts
    WHERE id_activite IN (3, 4, 10) -- ici 3 activités
    GROUP BY id_contact
    HAVING COUNT(*) = 3 -- le nombre d'activités

    Si on fait une jointure pour avoir par exemple le nom du contact, il faut mettre ce nom dans le SELECT ET dans le GROUP BY :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT c.id_contact, c.nom
    FROM activites_contacts ac
    INNER JOIN contact c ON c.id_contact = ac.id_contact
    WHERE ac.id_activite IN (3, 4, 10) -- ici 3 activités
    GROUP BY c.id_contact, c.nom
    HAVING COUNT(ac.*) = 3 -- le nombre d'activités
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  20. #20
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par CinePhil
    MySQL étant trop permissif, il vous autorise des choses qui peuvent donner des erreurs.
    On le dit et le répète dans le forum MySQL : Les colonnes du SELECT ne faisant pas l'objet d'une fonction de regroupement (COUNT, MIN, MAX, AVG, SUM) doivent toutes figurer dans le GROUP BY.
    C'est vrai.
    Mais je crois avoir pris la mauvaise habitude de ne jamais le faire.

    Faut dire que j'utilise uniquement MySQL.
    Puis du coté du forum MySQL, j'ose pas trop y mettre les pieds, les problèmes évoqués m'ont l'air bien compliqués à résoudre.

    Merci pour ce rappel en tout cas.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

Discussions similaires

  1. Demande d'aide sur requete
    Par vinum dans le forum Requêtes
    Réponses: 4
    Dernier message: 08/04/2009, 19h11
  2. Aide sur requete access
    Par Al soltani dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 02/03/2006, 11h58
  3. Besoin d'aide sur requetes imbriquées simples
    Par Kyti dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/03/2006, 10h52
  4. Aide sur requete PHP vers MySQL
    Par pounie dans le forum Requêtes
    Réponses: 4
    Dernier message: 19/02/2006, 15h12
  5. aide sur requete mysql
    Par digger dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/01/2006, 10h54

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