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 :

Double requête SQL


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Homme Profil pro
    Developpeur
    Inscrit en
    Novembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Developpeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 196
    Points : 159
    Points
    159
    Par défaut Double requête SQL
    Bonjour à toutes et à tous,

    Je m'arrache la tête depuis quelques jours pour réaliser une requête.
    Je vais essayer d'être simple et clair dans ma question.

    J'ai 2 tables :

    table ip_produits avec champ nom produit
    table item_vente avec champ nom_produit et quantite_produit

    Je souhaiterais faire une requête sql et l’afficher dans une page PHP.
    La requête devrait calculer le nombre de quantité_produit en fonction du nom_produit de ip_produits
    Ci dessous mon travail commenté, si quelqu'un souhaiterais m'aider...
    Merci par avance

    PS : je sais que je suis à côté de la plaque mais j'y travail

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
    $host = 'localhost';//Serveur
    $user = 'root';//Utilisateur
    $pass = '';//Mot de passe
    $db = 'jbs';//Nom de la base
     
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );//Connexion SQL
    mysql_select_db($db) or die ('Erreur :'.mysql_error());//Message si prb de connexion
     
    $select = 'SELECT * FROM item_vente ';//Requete de ma table
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );//Message si erreur requete
    $total = mysql_num_rows($result);//Resultat
     
    if($total) {// si résultat j'affiche dans un tableau
    echo '<table>';//Début du tableau
     
    //Nom des colonnes
    echo '<tr>';
    echo '<td>Nom du produit</td>';
    echo '<td><u>Quantité</td>';
    echo '</tr>';
     
    //Résultat des lignes  
    while($row = mysql_fetch_array($result)) { // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
    echo '<tr>';
    echo '<td>'.$row['nom_produit'].'</td>';
    echo '<td>'.$row['quantite_produit'].'</td>';
    echo '</tr>'."\n";}
     
    echo '</table>'; }  // fin du tableau.
     
    else echo 'Pas d\'enregistrements dans cette table...';//Message si pas d'enregistrements
    mysql_free_result($result);// Libération des résultats
    ?>

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ce que tu cherches à faire, c'est une requête qui additionne les valeurs de quantite_produit pour un id_produit donné. C'est clairement un problème SQL et non PHP (même si la partie PHP demande à être revue aussi, avec l'API mysql à remplacer par mysqli ou PDO).

    A lire sur le sujet : Le SQL de A à Z - le SELECT sur plusieurs tables et Le SQL de A à Z - groupage, sous ensembles et opérateurs ensemblistes
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre habitué
    Homme Profil pro
    Developpeur
    Inscrit en
    Novembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Developpeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 196
    Points : 159
    Points
    159
    Par défaut
    Merci pour tes liens, je vais me plonger dessus.
    Passes une bonne journée

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 379
    Points : 19 060
    Points
    19 060
    Par défaut
    Salut sdispro.

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
        DEFAULT CHARACTER SET `latin1`
        DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `ip_produits`
    --------------
     
    --------------
    CREATE TABLE `ip_produits`
    ( `produit`  integer unsigned not null auto_increment primary key,
      `nom`      varchar(255)     not null
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `ip_produits` (`nom`) values
      ('Camembert'), ('Boursin'),('Reblochon')
    --------------
     
    --------------
    select * from ip_produits
    --------------
     
    +---------+-----------+
    | produit | nom       |
    +---------+-----------+
    |       1 | Camembert |
    |       2 | Boursin   |
    |       3 | Reblochon |
    +---------+-----------+
    --------------
    DROP TABLE IF EXISTS `item_ventes`
    --------------
     
    --------------
    CREATE TABLE `item_ventes`
    ( `id`       integer unsigned not null auto_increment primary key,
      `produit`  integer unsigned not null,
      `quantite` integer unsigned not null,
      CONSTRAINT `FK_VENTES_PRODUITS` FOREIGN KEY (`produit`) REFERENCES `ip_produits` (`produit`) ON DELETE CASCADE ON UPDATE CASCADE
     
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `item_ventes` (`produit`,`quantite`) values
      (1, 12), (2, 15), (1, 7), (1, 3), (1, 24), (2, 1), (1, 32), (2, 52), (1, 41), (3, 17), (3, 25), (2, 11), (1, 32)
    --------------
     
    --------------
    select * from item_ventes
    --------------
     
    +----+---------+----------+
    | id | produit | quantite |
    +----+---------+----------+
    |  1 |       1 |       12 |
    |  2 |       2 |       15 |
    |  3 |       1 |        7 |
    |  4 |       1 |        3 |
    |  5 |       1 |       24 |
    |  6 |       2 |        1 |
    |  7 |       1 |       32 |
    |  8 |       2 |       52 |
    |  9 |       1 |       41 |
    | 10 |       3 |       17 |
    | 11 |       3 |       25 |
    | 12 |       2 |       11 |
    | 13 |       1 |       32 |
    +----+---------+----------+
    --------------
    select      p.produit,
                p.nom,
                sum(v.quantite) as quantite
     
          from  ip_produits  as p
    inner join  item_ventes  as v
            on  v.produit = p.produit
     
      group by  p.produit, p.nom
    --------------
     
    +---------+-----------+----------+
    | produit | nom       | quantite |
    +---------+-----------+----------+
    |       1 | Camembert |      151 |
    |       2 | Boursin   |       79 |
    |       3 | Reblochon |       42 |
    +---------+-----------+----------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 1
    --------------
     
    Appuyez sur une touche pour continuer...
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre habitué
    Homme Profil pro
    Developpeur
    Inscrit en
    Novembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Developpeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 196
    Points : 159
    Points
    159
    Par défaut
    Bonsoir Artemus24

    Merci pour ton aide, je n'ai pas tout compris, tu me donne du sql et du php ?
    Je fait tester tes codes sur une nouvelle base.
    Encore merci

Discussions similaires

  1. [MySQL] double requête sql
    Par Therand dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 11/11/2012, 17h47
  2. Double requête SQL
    Par simonlaurent5000 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/08/2011, 10h45
  3. [AC-2000] "double" requête sql
    Par egautier18 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 22/10/2010, 11h25
  4. Double requête SQL
    Par Lamzouille dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/06/2010, 11h48
  5. Requête SQL et tableau à double entrée
    Par Invité dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/06/2007, 20h51

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