Bonjour,

je souhaite transférer les données d'une table vers une autre.
Je fais cette manipulation pour mettre en historique les données relatives à des commandes. J'ai donc initialement 2 tables : 1 pour les entetes de la commande et 1 autre pour les lignes de la commande (à une entete de commande peut correspondre plusieurs lignes) liées par une clé étrangère qui est le code de la commande.
Lorsque je transfert les variables entetes vers une table entetes_historiques_commandes : tout ce passe bien. Par contre le transfert des lignes de la commande vers une table lignes_historiques_commandes échoue.

Voici mon code :

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
 
// Récupération des valeurs à transférer de la table entetes_commandes vers la table entetes_historiques_commandes
                $requete_sql="SELECT * FROM entetes_commandes WHERE code_ent_cmde='$code_ent_cmde'";
                $resultat_sql=mysql_query($requete_sql);
                $row =mysql_fetch_object($resultat_sql);                       
 
                // Préparation des valeurs à transférer
                $code_ent_histo=$row->code_ent_cmde;
                $code_cli_ent_histo=$row->code_cli_ent_cmde;
                $date_ent_histo=$row->date_ent_cmde;
                $qte_totale_ent_histo=$row->qte_totale_ent_cmde;
                $poids_total_ent_histo=$row->poids_total_ent_cmde;
                $total1_ttc_ent_histo=$row->total1_ttc_ent_cmde;
                $mtt_promo_ent_histo=$row->mtt_promo_ent_cmde;
                $total2_ttc_ent_histo=$row->total2_ttc_ent_cmde;
                $tva_ent_histo=$row->tva_ent_cmde;
 
                // Insertion des valeurs dans la table entetes_historiques_commandes
                $requete_sql="INSERT INTO entetes_historiques_commandes (code_ent_histo, code_cli_ent_histo, date_ent_histo, qte_totale_ent_histo, poids_total_ent_histo, total1_ttc_ent_histo, mtt_promo_ent_histo, total2_ttc_ent_histo, tva_ent_histo, num_colissimo_ent_histo) VALUES ('$code_ent_histo', '$code_cli_ent_histo', '$date_ent_histo', '$qte_totale_ent_histo', '$poids_total_ent_histo', '$total1_ttc_ent_histo', '$mtt_promo_ent_histo', '$total2_ttc_ent_histo', '$tva_ent_histo', '$num_colissimo_ent_histo')";
                $resultat_sql=mysql_query($requete_sql);
                if ($resultat_sql)
                {
                    // print "Insertion réussie";
 
                    // Récupération des valeurs à transférer de la table lignes_commandes vers la table lignes_historiques_commandes
                    $requete_sql="SELECT * FROM lignes_commandes WHERE code_ent_cmde='$code_ent_cmde' ORDER BY code_li_cmde";
                    $resultat_sql= mysql_query($requete_sql);
                    $nombre_enregistrements = mysql_numrows($resultat_sql);
 
                    // Parcours séquentiel de l'extraction
                    for ($k=0;$k<$nombre_enregistrements;$k++)
                    {
                        // Préparation des valeurs à transférer
                        $ligne_produit=@mysql_fetch_object($resultat_sql);
                        $code_li_histo=$ligne_produit->code_li_cmde;
                        $code_prod_li_histo=$ligne_produit->code_prod_li_cmde;
                        $qte_li_histo=$ligne_produit->qte_li_cmde;
                        $poids_prod_li_histo=$ligne_produit->poids_prod_li_cmde;
                        $prix_prod_li_histo=$ligne_produit->prix_prod_li_cmde;
                        $prix_total_li_histo=$ligne_produit->prix_total_li_cmde;
                        $code_ent_histo=$ligne_produit->code_ent_cmde;
 
                        // Insertion des valeurs dans la table lignes_historiques_commandes
                        $requete_sql_2="INSERT INTO lignes_historiques_commandes (code_li_histo, code_prod_li_histo, qte_li_histo, poids_prod_li_histo, prix_prod_li_histo, prix_total_li_histo, code_ent_histo) VALUES ('$code_li_histo', '$code_prod_li_histo', '$qte_li_histo', '$poids_prod_li_histo', '$prix_prod_li_histo', '$prix_total_li_histo', '$code_ent_histo')";
                        $resultat_sql_2=mysql_query($requete_sql_2);
                        if ($resultat_sql_2)
                        {
                            // print "Insertion réussie $code_li_histo";
                        }
                        else
                        {
                            print "<P>Echec d'insertion des valeurs dans la table lignes_historiques_commandes<P><BR>";
                            print "<INPUT TYPE='Button' onclick='javascript:history.go(-1)' VALUE='Retour'>";
                        }
                    }
                }
                else
                {
                    print "<P>Echec d'insertion dans la table entetes_historiques_commandes<P><BR>";
                    print "<INPUT TYPE='Button' onclick='javascript:history.go(-1)' VALUE='Retour'>";
                }
Si vous avez une idée...