Requete pour copier des informations

Eléphant du PHP | 440 Messages

13 mai 2009, 12:18

Bonjour à tous,

je voudrait savoir si il existe une commande mysql pour pourvoir copier une série d'information dans la même table.


Exemple:
nous avons une table ou il y a 20 enregistrement pour le produit croissant. Nous voudrions recopier ces enregistrement dans la même table mais en changeant la ref_pdt (croissant fraise)


table:

Code : Tout sélectionner

-- Version de PHP: 5.2.1 -- Structure de la table `recette` CREATE TABLE `recette` ( `num_rctt` int(11) NOT NULL auto_increment, `ref_pdt` int(11) NOT NULL, `code_m` int(11) NOT NULL, `qte_m` decimal(10,4) NOT NULL, `fourrage_rctt` int(11) NOT NULL, `nbuniteparrecet` int(11) default NULL, PRIMARY KEY (`num_rctt`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=914 ; -- -- Contenu de la table `recette` -- INSERT INTO `recette` (`num_rctt`, `ref_pdt`, `code_m`, `qte_m`, `fourrage_rctt`, `nbuniteparrecet`)
id_recette_mat (clé primaire s'incremente tout seul)
id_mat
qte_recette
ref_pdt.


nous voudrions recopier les 20 enregistrements avec ref_pdt=croissant dans cette même table mais avec un ref_pdt différent= croissant fraise.

Code : Tout sélectionner

INSERT INTO recette SET id_mat ,qte_recette, ref_pdt VALUES ((SELECT id_mat, qte_recette FROM recette WHERE ref_pdt=croissant), Croissant_fraise);
Est-ce que c'est réalisable? Mon exemple ci-dessus est-il correct?

Merci

guigui69

ViPHP
ViPHP | 2291 Messages

13 mai 2009, 15:28

salut,

Simplement comme ceci je pense :?:
Mettre uniquement le champ ref_pdt à jour.
$update = "UPDATE recette SET ref_pdt='croissant'";
Comme cela TOUTE les lignes ref_pdt aurons la valeur de croissant

Eléphant du PHP | 440 Messages

13 mai 2009, 15:41

Merci pour ta réponse mais je pense pas.

En fait la personne est sur une page php, elle remplis diverse information, puis en bas une liste déroulante lui demande quel produit elle veut copier.

Car mon but est de copier des enregistrement qui existe deja et les attribué a ce nouveau produit voulus, Mais en aucuns mettre à jour les champs existant dans ma table.


Merci

guigui69

Mammouth du PHP | 965 Messages

13 mai 2009, 15:51

Merci pour ta réponse mais je pense pas.

En fait la personne est sur une page php, elle remplis diverse information, puis en bas une liste déroulante lui demande quel produit elle veut copier.

Car mon but est de copier des enregistrement qui existe deja et les attribué a ce nouveau produit voulus, Mais en aucuns mettre à jour les champs existant dans ma table.


Merci

guigui69
En fait tu as des enregistrement dans une table qui sont associés à des produits et tu voudrait les associer à de nouvelles références, par exemple faire en sorte que entrée 1 puisse être dans 2 catégories (croissant / croissant fraise).

J'arrive pas à comprendre ou c'est pas très clair ou c'est que je n'arrive pas à voir la liaison entre les objets.

Si tu veux associer toute une liste d'éléments à une catégorie ou sur plusieurs catégorie ou alors un élément à une catégorie ?

ViPHP
ViPHP | 2291 Messages

13 mai 2009, 16:06

J'ai du mal a comprendre sorry :oops:

Eléphant du PHP | 440 Messages

13 mai 2009, 16:49

En fait de manière simple:


Ma table recette, comporte 20 enregistrement pour la ref_pdt=20, je voudrait copier-coller ses 20 enregistrement dans cette même table mais en changeant le ref_pdt en 21.( sans modifier les enregistrement pour le ref_pdt=20)


en fait c'est faire copier coller de champ dans la même table mais en champs une des informations.

_____________________________________________________________________________________


Maj:

Voici une exemple de requete:

Code : Tout sélectionner

INSERT INTO recette (ref_pdt, code_m, qte_m, fourrage_rctt, nbuniteparrecet) SELECT $ref_NOUVEAU, qte_m, fourrage_rctt, nbuniteparrecet FROM recette WHERE ref_pdt='$ref_a_copier';
Est-ce correct?

guigui69