Duplication de données php/mysq
niahoo
Messages postés
247
Date d'inscription
Statut
Membre
Dernière intervention
-
niahoo Messages postés 247 Date d'inscription Statut Membre Dernière intervention -
niahoo Messages postés 247 Date d'inscription Statut Membre Dernière intervention -
hello tout le monde,
j'ai une question assez simple:
mon application gère des listes d'items, les items sont communs à tout le monde et les listes répertoriant une partie de ces items appartiennent à des utilisateurs.
voici les tables
items (id, nom, commentaire, ..)
listes (list_id, item_id) // ou id et item_id sont des clés étrangères, chaque ligne associant un item à la liste correpondante
user (id, pseudo, mail, password, ...)
user_lists (list_id, user_id, nom_liste) // c'est ici que chaque liste n'apparaît qu'une fois, avec en clé étrangère l'user à qui elle appartient
Ma question :
Je voudrais qu'un utilisateur qui est satifsfait d'une liste puisse la partager. je ne parle pas de laisser un autre utilisateur consulter sa liste, mais bien de la dupliquer afin que les deux utilisateurs puissent ensuite la modifier à leur gré differrement.
algo de base en php:
l'user sélectionne une de ses listes et un autre user pour la lui donner.
récupération des deux id concernés.
je fais une requete pour récupérer les id des items de la liste, dans une variable $items
je crée une nouvelle liste pour l'utilisateur à qui on donne la liste.
Ensuite je crée une requete d'insertion à laquelle je rajoute un par un les items de $item, pour enfin envoyer tout ça à mysql.
et ça marche, mais je ne trouve pas ça super puissant...
J'aimerais donc savoir s'il n'y a pas moyen de procéder à ceci en créant une fonction dans mysql, ou un système de duplication déjà intégrer à mysql pour libérer mon ode php de cette tâche.
merci
j'ai une question assez simple:
mon application gère des listes d'items, les items sont communs à tout le monde et les listes répertoriant une partie de ces items appartiennent à des utilisateurs.
voici les tables
items (id, nom, commentaire, ..)
listes (list_id, item_id) // ou id et item_id sont des clés étrangères, chaque ligne associant un item à la liste correpondante
user (id, pseudo, mail, password, ...)
user_lists (list_id, user_id, nom_liste) // c'est ici que chaque liste n'apparaît qu'une fois, avec en clé étrangère l'user à qui elle appartient
Ma question :
Je voudrais qu'un utilisateur qui est satifsfait d'une liste puisse la partager. je ne parle pas de laisser un autre utilisateur consulter sa liste, mais bien de la dupliquer afin que les deux utilisateurs puissent ensuite la modifier à leur gré differrement.
algo de base en php:
l'user sélectionne une de ses listes et un autre user pour la lui donner.
récupération des deux id concernés.
je fais une requete pour récupérer les id des items de la liste, dans une variable $items
je crée une nouvelle liste pour l'utilisateur à qui on donne la liste.
Ensuite je crée une requete d'insertion à laquelle je rajoute un par un les items de $item, pour enfin envoyer tout ça à mysql.
et ça marche, mais je ne trouve pas ça super puissant...
J'aimerais donc savoir s'il n'y a pas moyen de procéder à ceci en créant une fonction dans mysql, ou un système de duplication déjà intégrer à mysql pour libérer mon ode php de cette tâche.
merci
A voir également:
- Duplication de données php/mysq
- Fuite données maif - Guide
- Duplication écran - Guide
- Supprimer les données de navigation - Guide
- Easy php - Télécharger - Divers Web & Internet
- Trier des données excel - Guide
3 réponses
bonjour,
une requ^te pour créer la duplication pourrait être :
insert into 2emetable (select * from 1eretable)
une requ^te pour créer la duplication pourrait être :
insert into 2emetable (select * from 1eretable)
Salut
ta question rejoint le un topic en cours "insérer plusieurs lignes en une instruction"
dans ton cas, les instructions seraient
1. création de la nouvelle liste vide associée au bénéficiaire
1.1 $list_id_à_créer = select max(list_id) + 1 from user_lists
1.2 $user_id_bénéficiaire = select id from user where pseudo = pseudo du formulaire
1.3 $nom_liste = nom_liste du formulaire
1.4 création de la ligne: "insert into user_lists values($list_id_à_créer, '$user_id_bénéficiaire', '$nom_liste')"
2. maintenant que la liste est créée, il n'y a qu'à la remplir
car avec $nom_liste, on obtient le list_id de la liste à donner ;
en parcourant lists où lits_id = list_id à donner on a tous les items à donner ;
en associant à chacun de ces items l'item de la nouvelle liste on a de quoi remplir la liste nouvellement créée.
tu nous tient au courant de comment ça marche ?
ta question rejoint le un topic en cours "insérer plusieurs lignes en une instruction"
dans ton cas, les instructions seraient
1. création de la nouvelle liste vide associée au bénéficiaire
1.1 $list_id_à_créer = select max(list_id) + 1 from user_lists
1.2 $user_id_bénéficiaire = select id from user where pseudo = pseudo du formulaire
1.3 $nom_liste = nom_liste du formulaire
1.4 création de la ligne: "insert into user_lists values($list_id_à_créer, '$user_id_bénéficiaire', '$nom_liste')"
2. maintenant que la liste est créée, il n'y a qu'à la remplir
insert into lists select $list_id_à_créer , item_id from lists l , user_lists u where l.list_id = u.list_id and nom_liste = $nom_liste
car avec $nom_liste, on obtient le list_id de la liste à donner ;
en parcourant lists où lits_id = list_id à donner on a tous les items à donner ;
en associant à chacun de ces items l'item de la nouvelle liste on a de quoi remplir la liste nouvellement créée.
tu nous tient au courant de comment ça marche ?