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 :

Copie table vers une autre et ajout d'autres champs


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Par défaut Copie table vers une autre et ajout d'autres champs
    Salut à tous,

    J'ai cherché un peu, mais j'ai une requête plutôt compliquée à faire et j'm'emmêle un peu les pinceaux.. Si vous pouviez m'éclairer un peu.

    J'ai 3 tables à manipuler :
    - lignes_commande(ID_PRODUIT,ID_COMMANDE,QUANTITE,PRIX_PRODUIT)
    - produit(ID_PRODUIT,PRIX_NORMAL,PRIX_PROMOTION) (Je prends que ce qui est intéressant ici)
    - panier_produit(ID_PRODUIT,QUANTITE) (Idem)

    Ma requête devra copier l'ensemble de panier_produit vers ligne_commande, si ce n'était que ça, pas de soucis car ce sont les mêmes champs. Je pensais à ceci déjà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    INSERT INTO lignes_commande
    	(SELECT pp.ID_PRODUIT, pp.QUANTITE
    	FROM panier_produit pp
    	WHERE (
    		pp.ID_CLIENT = $IdClient
    	))
    $IdClient étant connue.

    Mais voila, dans lignes_commande, je doit également ajouter pour chaque ligne copiée l'ID_COMMANDE correspondant. Et déjà ça, je ne sais pas comment faire...
    De plus, pour chaque ligne, je vois aussi récupérer en meme temps le prix du produit, sachant que :
    -si produit.PRIX_PROMOTION est défini, alors lignes_commande.PRIX_PRODUIT = produit.PRIX_PROMOTION
    -sinon lignes_commande.PRIX_PRODUIT = produit.PRIX_NORMAL

    Si quelqu'un pouvait m'aider ce serait franchement sympa
    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 287
    Par défaut
    Je pense qu'il te faudrait une table commande, par exemple :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE commande(
      ID_COMMANDE INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, 
      ID_CLIENT INT UNSIGNED NOT NULL, 
      DATE_HEURE TIMESTAMP DEFAULT CURRENT_TIMESTAMP)

    Quand ton panier est validé :
    1/ Tu crées une nouvelle commande
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO commande (ID_CLIENT) VALUES ($IdClient) ;
    2/ En PHP, tu récupères l'ID_COMMANDE créée avec mysql_insert_id() :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $IdComm = mysql_insert_id() ;
    3/ Tu peux maintenant faire tes insertions :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO lignes_commande (ID_PRODUIT,ID_COMMANDE,QUANTITE,PRIX_PRODUIT)
    	SELECT pp.ID_PRODUIT, $IdComm, pp.QUANTITE
    	FROM panier_produit pp
    	WHERE pp.ID_CLIENT = $IdClient

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 287
    Par défaut
    Si tu peux revoir ta modélisation, le plus simple est de considérer que c'est la même table pour "panier" et "commande", et la même table pour "lignes_commande" et "panier_produit".
    Sur panier, tu ajoutes une colonne STATUT. Par défaut, les paniers ont le statut "panier". Quand le client valide, le statut passe en "commande".

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

Discussions similaires

  1. [WD14] Copie de champs d'une table vers une autre
    Par LuckyLuke56 dans le forum WinDev
    Réponses: 3
    Dernier message: 04/10/2010, 12h39
  2. [AC-2007] [QRY SQL] Copie d'un enregistrement d'une table vers une autre en respectant les critères
    Par Barbaboulle dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 11/10/2009, 15h03
  3. Procédure stockée, copie d'enregistrement d'une table vers une autre
    Par sarah65536 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 15/06/2009, 18h02
  4. copie d'une table vers une autre
    Par bibile dans le forum Requêtes
    Réponses: 5
    Dernier message: 10/08/2007, 09h21
  5. copie données d'une table vers une autre
    Par wasaa dans le forum Access
    Réponses: 5
    Dernier message: 14/09/2006, 17h04

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