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

Langage PHP Discussion :

Exporter les données d'une table dans une autre table


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de menoulette
    Inscrit en
    Août 2009
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 320
    Points : 111
    Points
    111
    Par défaut Exporter les données d'une table dans une autre table
    Bonjour,
    J'ai deux tables, une nommée utilisateur autre nomée livret_scolaire, je veux exporter les champs de la table livret_scolaire dans la table utilisateur, alors quelle la requête à executer sous phpMyadmain pour réaliser cette dernière?
    Merci

  2. #2
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Bonjour,

    Voila une requete à tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO utilisateur (nom, prenom)
    SELECT nom, prenom
    FROM livret_scolaire
    Tu peux meme ajouté un WHERE a la requete SELECT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO utilisateur (nom, prenom)
    SELECT nom, prenom
    FROM livret_scolaire
    WHERE moyenne>=10
    Z.

  3. #3
    Membre régulier Avatar de menoulette
    Inscrit en
    Août 2009
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 320
    Points : 111
    Points
    111
    Par défaut
    Rebonjour,
    Merci pour votre réponse,mais c'est pas ca exactement ce que je cherche ,j'ai une trés grande table nommée livret_scolaire,
    j'ai besoin de comprendre la façon d'utiliser INSERT INTO pour copier une table entière (livret_scolaire)dans un autre(utilisateur)? Je pense qu'il est possible mais pas sûr de la syntaxe ou la commande,
    on m'a proposé cettre requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     insert 
    into table2 
    select * from table1
    mais, c'est juste Si les tableaux de parts de la même structure (même nombre de colonnes, chaque paire de colonnes avec le même type de données),
    mais moi je ne veux pas écraser les données de la table utilisateur ,je veux juste ajouter les 184 champs de la table livret_scolaire dans la table utilisateur,
    Que dois je faire?
    Merci

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    En quoi la réponse de Zwiter ne te conviens pas ?

    moi je ne veux pas écraser les données de la table utilisateur
    Un INSERT ne peux pas ecraser des données : si deux lignes avaient la meme clef, l'insertion echouerait.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Afin d'eviter tout soucis, saurais-tu cloner la table utilisateur ? Ceci afin d'eviter toute malencontreuse manipulation.
    Ainsi on essaiera d'inserer les donner dans cette nouvelle table, puis on remplacera la table utilisateur par cette derniere.

    Ensuite, pour qu'on puisse mieux y voir, il me faudrait les attributs de tes 2 tables. Si les attributs que tu veux importer dans utilisateur ne tombent pas sous le sense, indique moi les correspondances.
    Dans tous les cas, garde a l'esprit que les champs a inserer (nom et prenom dans mon exemple) doivent aussi etre présent dans la table de destinatoin, mais peuvent etre sous un nom différent. Il faut qu'il y ait le meme nombre de champ inséré et destination.

    Z.

  6. #6
    Membre régulier Avatar de menoulette
    Inscrit en
    Août 2009
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 320
    Points : 111
    Points
    111
    Par défaut
    Re,
    Pour la table utilisateur elle contient les attributs suivants,
    pseudo(clé) et tous les autres champs nécéssaire pour l'inscription d'un membre,
    pour la table livret scolaire j'ai pas mis de clé et tous qu'elle contient les notes des tests que l'utilisateur a déja passé
    livret_scolaire(Not1,Note2,.....,Note184) sont tous de type float , alors comment déplacer tous les colonnes de la table livret_scolaire dans la table utilisateur sachant que ces colonne n'existe pas dans la table utilisateur?donc nécéssite une création,,je crois que je dois ,ajouter moi même les 184 champs??y'aura pas d'autres solutions!

  7. #7
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    pour la table livret scolaire j'ai pas mis de clé et tous qu'elle contient les notes des tests que l'utilisateur a déja passé
    Donc un utilisateur a passé plusieurs tests et possède donc plusieurs notes ?
    Car si c'est le cas, vouloir transférer ces données dans ta table utilisateur est une erreur.

  8. #8
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Effectivement, 184 champs...
    Tu peux les generer automatiquement via un script le contenu de la requete sql, si tu connais un langage de programmation, et si tes champs sont du style note1, note2...note184.

    Autrement, je te conseil tres vivement de normaliser ta table.
    Car si tu as un jour 185 notes, comment fais-tu ?

    il te faut donc une table utilisateur :
    utilisateurs (pseudo, nom, prenom...)

    et une table notes :
    notes(pseudo, note, date, matiere...)

    il faut donc que la clé étrangere de la table notes soit retrouver dans la table utilisateurs en tant que clé primaire.

    Selection de toutes les notes de tout le monde :
    SELECT * FROM notes AS n LEFT JOIN utilisateur AS u ON n.pseudo = u.pseudo

    Selection des notes de Albert Dupont :
    SELECT * FROM notes AS n LEFT JOIN utilisateur AS u ON n.pseudo = u.pseudo
    WHERE u.nom='Dupont' AND u.prenom='Albert'

    Plus poussé : Moyenne de chaque personne :
    SELECT u.nom, u.prenom, AVG(note) AS moyenne FROM notes AS n LEFT JOIN utilisateur AS u ON n.pseudo = u.pseudo
    GROUP BY u.nom, u.prenom

    Z.

  9. #9
    Membre régulier Avatar de menoulette
    Inscrit en
    Août 2009
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 320
    Points : 111
    Points
    111
    Par défaut
    Alors croyez-vous que je dois laisser la table livret_scolaire, et j'ajouterai le champ pseudo (comme identifiant)??parce que la base de fonctionnement est de cette logique ,que chaque utilisateur contient un livret scolaire, donc ils'agit d'une relation entre les deux tables(utilisateur et livret-scolaire)?donnez moi vos avis?

  10. #10
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Cf mon message juste ci-dessus concernant mon avi sur tes relations entre tables

    Z.

  11. #11
    Membre régulier Avatar de menoulette
    Inscrit en
    Août 2009
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 320
    Points : 111
    Points
    111
    Par défaut
    Merci zwitter,j'ai pas vu qu'aprés avoir poster mon dernier message, je comprend ce que tu veux dire,
    Merci

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

Discussions similaires

  1. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  2. [AC-2003] Lier les tables d'une Base1 dans une Base3 via une Base2
    Par ted the Ors dans le forum VBA Access
    Réponses: 0
    Dernier message: 30/12/2009, 11h58
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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