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

 MySQL Discussion :

générer des donnees / aide pour requête complexe


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Par défaut générer des donnees / aide pour requête complexe
    J'ai une table de 7 colonnes et 3 entrees:
    ______________________________________________
    |combinaison | coleur | red | green | blue | RGB sum |
    ______________________________________________
    | w | white | 0 | 255 | 150 | 405 |
    ______________________________________________
    | m | maroon| 255| 150 | 0 | 405 |
    ______________________________________________
    | b | black | 150| 0 | 255 | 405 |
    ______________________________________________
    Le but de la manoeuvre est de faire une requette qui va creer une nouvelle table avec un nombre n d'entree fait de combinaisons entre les 3 entrees de la premiere table pour donner une variante de coulour selon les nouvelles combinaisons auto determinees.
    exemple 1: w+w / w+m / w+b / ... / 4w+6m+b / ... / 6b+8m+10w+b+4w / ...
    exemple 2: w+(2w+b+6m)+12(2b+7w)...
    Pour w+m les nouveaux chiffres de Red / Green / Blue seront donnees par cette formule: floor(x*0.9) + floor(y*0.1) avec x referent a la premier couleur et y a la second
    -->
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $Red = floor(0*0.9) + floor(255*0.1);
    $Green = floor(255*0.9) + floor(150*0.1);
    $Blue = floor(150*0.9) + floor(0*0.1);

    Table & data ref:
    Code mysql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    create table A_primary_colors (
    ID_A int NOT NULL AUTO_INCREMENT,
    horse_color_combo_A varchar(1),
    horse_color_A varchar(15),
    red_A int,
    green_A int,
    blue_A int,
    RGB_sum_A int,
    PRIMARY KEY (ID_A)
    );
     
    INSERT INTO A_primary_colors ( horse_color_combo_A, horse_color_A, red_A, green_A, blue_A, RGB_sum_A) value ( 'w','white', '0', '255', '150', '405');
    INSERT INTO A_primary_colors ( horse_color_combo_A, horse_color_A, red_A, green_A, blue_A, RGB_sum_A) value ( 'm','maroon', '255', '150', '0', '405');
    INSERT INTO A_primary_colors ( horse_color_combo_A, horse_color_A, red_A, green_A, blue_A, RGB_sum_A) value ( 'b','black', '150', '0', '255', '405');

    Si vous pouviez me conseiller avec des exemples se serait sympas

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Bonjour,

    J'ai beaucoup de mal à comprendre ce que tu souhaites faire ...
    Qu'entends-tu par "les nouvelles combinaisons auto-déterminées" ? Ces combinaisons doivent être déterminées par la requête ? Si oui, selon quelles règles ?

    Ou est-ce que tu cherches juste à transformer ton code PHP en son équivalent SQL ?

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Par défaut
    NB: qwerty keyboard, desole pour les accents.

    Je n'est fait jusqu'a maintenant qu' un petit program de FTP-client with PHP & MySQL. C'etait il y a 3 ou 4 ans.

    C'est pas toujours evidant de decrire ses idees

    1) je fait une table avec 6 colonnes:
    ID | couleur | combinaison | rouge | vert | bleu
    2) je rempli la table avec 3 entrees:
    ID | couleur | combinaison | rouge | vert | bleu
    1 | blanc | b | 0 | 255 | 150
    2 | maron | m | 255 | 150 | 0
    3 | noir | n | 150 | 0 | 255
    3) il faut que je fasse une requete pour additionner les entrees 1, 2 et 3 avec pour clef "combinaison" pour creer une nouvelle table:
    exemple:
    les combinaison sont etablies entre 2 entrees( chaque combinaison est delemite par les parentheses):

    ID | combinaison
    1 | (b)
    2 | (b)+(b)
    3 | (b)+(m)
    4 | (b)+(n)
    5 | (m)
    6 | (m)+(b)
    7 | (m)+(m)
    8 | (m)+(n)
    9 | (n)
    10 | (n)+(b)
    11 | (n)+(m)
    12 | (n)+(n)
    ...
    4) calculer les valeur de rouge, vert et bleu des nouvelles combinaisons avec la formule qui suit: (probablement dans une autre table)
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    attribut du premier element de la nouvelle combinaison:
    $Red_1, $Green_1, $Blue_1
    attribut du premier element de la nouvelle combinaison:
    $Red_2, $Green_2, $Blue_2
    $NewRed = floor($Red_1*0.9) + floor($Red_2*0.1);
    $NewGreen = floor($Green_1*0.9) + floor($Green_2*0.1);
    $NewBlue = floor($Blue_1*0.9) + floor($Blue_2*0.1);

    PS: le but final est de creer une table avec un nombre de combinaison exponantiel et calculer leur attributs.

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Supposons que ta table des couleurs primaires s'appelle COULEURS, avec les champs ID_COULEURS (clé primaire), NOM_COULEUR, CODE_COMBINAISON, ROUGE, VERT, BLEU.

    Supposons que tu veuilles enregistrer les différentes combinaisons de couleurs primaires, dans une table COMBINAISONS avec les champs ID_COMB (clé primaire), NOM_COMB (par exemple '(b)+(n)'). Il faut lui ajouter les champs ROUGE, VERT et BLEU, enregistrant les résultats de ton calcul des nouvelles valeurs.

    Ainsi, 1 couleurs peut participer à une ou plusieurs combinaisons, et une combinaison est composée d'1 ou plusieurs couleurs. Il s'agit là d'une relation N-N (en modélisation). Il faut donc créer une table de passage entre la table COULEUR et la table COMBINAISON, contenant au moins l'identifiant d'une couleur et l'identifiant de la combinaison à laquelle elle participe. Attention, si tu mélanges plusieurs fois la même couleur, alors il te faut une clef auto-incrémentée sur cette table de passage (l'entrée COMBINAISON/COULEUR n'étant plus unique pour chaque ligne)
    Dans cette table, rien ne t'empêche d'enregistrer la valeur du coefficient appliqué au rouge, au vert et au bleu de la couleur quand elle participe à la combinaison (champs COEF_ROUGE, COEF_VERT, COEF_BLEU). Ce qui te permets de recalculer les valeurs de ROUGE, VERT et BLEU de toutes les combinaisons à partir de la table de passage.

    En reprenant ton exemple, ça donnerait quelque chose comme ça :

    Table COULEUR :
    ID | couleur | combinaison | rouge | vert | bleu
    1 | blanc | b | 0 | 255 | 150
    2 | marron | m | 255 | 150 | 0
    3 | noir | n | 150 | 0 | 255
    Table COMBINAISON :
    ID | combinaison | rouge | vert | bleu
    1 | (b) | 0 | 255 | 150
    2 | (b)+(b) | 0 | 255 | 150
    3 | (b)+(m) | 25 | 244 | 135
    4 | (b)+(n) | 15 | 229 | 244
    ...
    Table MELANGER :
    ID | ID_COMBINAISON | ID_COULEUR | COEF_ROUGE | COEF_VERT | COEF_BLEU
    1| 1 | 1 | 1 | 1 | 1
    2 | 2 | 1 | 0.9 | 0.9 | 0.9
    3 | 2 | 1 | 0.1 | 0.1 | 0.1
    4 | 3 | 1 | 0.9 | 0.9 | 0.9
    5 | 3 | 2 | 0.1 | 0.1 | 0.1
    6 | 4 | 1 | 0.9 | 0.9 | 0.9
    7 | 4 | 3 | 0.1 | 0.1 | 0.1
    ...
    Avant de voir pour les requêtes de calcul des nouvelles valeurs dans la table COMBINAISON, est-ce que ce modèle correspond à ce que tu souhaites ?

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Par défaut
    Je te remerci de repondre Ced.

    Ton idee de table MELANGER a l'air tres interessante. Au depart Je pensais faire une fonction en PHP, Je pensais pas mettre des coefficient en table, mais si tu penses que ca vaut le coup je vais suivre ca.

    Cette table MELANGER est t'elle une table TEMPORAIRE?

    Mon premier soucis c'est de pouvoir voir comment je peux creer la table COMBINAISON en combinant les elements de la table COULEUR par une requete Mysql ou une fonction PHP. Par la suite je pourrais creer une table COMBINAISON_02 avec les elements de la table COMBINAISON ... Je suis sure que c'est tout bete, mais comme Je n'ai fait du code qu'a la maison et il y a longtemps, l'idee ne me saute pas au yeux. J'ai lue a propos des base de donnees un livre et je sais que le design est important et peut soulager le developpement du code pour les acces et requetes.

    PS: Je vais installer le language francais sur mon PC pour la prochaine fois, dsl.

  6. #6
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Citation Envoyé par djinnwatcher Voir le message
    Cette table MELANGER est t'elle une table TEMPORAIRE?
    Non, c'est une table "fixe". Elle permet de garder trace de la façon dont les combinaisons de couleurs ont été obtenues. C'est pourquoi il ne faut pas qu'elle soit temporaire...

    Citation Envoyé par djinnwatcher Voir le message
    Mon premier soucis c'est de pouvoir voir comment je peux creer la table COMBINAISON en combinant les elements de la table COULEUR par une requete Mysql ou une fonction PHP. Par la suite je pourrais creer une table COMBINAISON_02 avec les elements de la table COMBINAISON ...
    Euh, là, c'est moi qui ne comprends plus trop ce que tu veux faire avec une table COMBINAISON_02

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/02/2014, 16h03
  2. demande d'aide pour requête complexe avec SUM
    Par sibia dans le forum Requêtes
    Réponses: 1
    Dernier message: 25/04/2013, 09h09
  3. [MySQL-5.5] Demande d'aide pour requête complexe
    Par gattou dans le forum Requêtes
    Réponses: 4
    Dernier message: 23/04/2013, 10h29
  4. Aide pour requête complexe
    Par marivi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/09/2007, 17h27
  5. Aide pour Requête
    Par Guiche dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/11/2003, 20h18

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