Bonjour, j'aimerais des petits conseils quant à un problème que j'ai sur le développement d'un projet.
Voilà j'effectue une sauvegarde dans une base de donnée d'un très grand nombre de données.
Du style j'administre des droits pour des films.
Un film à 100 pays où je peux mettre des droits : exclusif ou non-exclusif.
Et pour chaque pays, j'ai également 26 lignes.
Ce qui me fait un total de 25*2*100 = 5600 cases à enregistrer.
La "technique" que j'utilise et qu'à chaque fois que je fais des modifs sur un film, je delete (sauvagement) toutes les infos de ce film dans ma base, puis je ré-enregistre les nouvelles données. Je faisais des uptade précedemment mais bon dans un "soucis" de ne pas avoir 2 fois une même infos j'ai préféré tout delete.
Voici la tête de ma table :
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 -- -- Structure de la table `droits_pays_attributs` -- CREATE TABLE IF NOT EXISTS `droits_pays_attributs` ( `id` int(11) NOT NULL auto_increment, `case0_0` enum('oui','non') default NULL, `case0_1` enum('oui','non') default NULL, `case1_0` enum('oui','non') default NULL, `case1_1` enum('oui','non') default NULL, `case2_0` enum('oui','non') default NULL, `case2_1` enum('oui','non') default NULL, `case3_0` enum('oui','non') default NULL, `case3_1` enum('oui','non') default NULL, `case4_0` enum('oui','non') default NULL, `case4_1` enum('oui','non') default NULL, `case5_0` enum('oui','non') default NULL, `case5_1` enum('oui','non') default NULL, `case6_0` enum('oui','non') default NULL, `case6_1` enum('oui','non') default NULL, `case7_0` enum('oui','non') default NULL, `case7_1` enum('oui','non') default NULL, `case8_0` enum('oui','non') default NULL, `case8_1` enum('oui','non') default NULL, `case9_0` enum('oui','non') default NULL, `case9_1` enum('oui','non') default NULL, `case10_0` enum('oui','non') default NULL, `case10_1` enum('oui','non') default NULL, `case11_0` enum('oui','non') default NULL, `case11_1` enum('oui','non') default NULL, `case12_0` enum('oui','non') default NULL, `case12_1` enum('oui','non') default NULL, `case13_0` enum('oui','non') default NULL, `case13_1` enum('oui','non') default NULL, `case14_0` enum('oui','non') default NULL, `case14_1` enum('oui','non') default NULL, `case15_0` enum('oui','non') default NULL, `case15_1` enum('oui','non') default NULL, `case16_0` enum('oui','non') default NULL, `case16_1` enum('oui','non') default NULL, `case17_0` enum('oui','non') default NULL, `case17_1` enum('oui','non') default NULL, `case18_0` enum('oui','non') default NULL, `case18_1` enum('oui','non') default NULL, `case19_0` enum('oui','non') default NULL, `case19_1` enum('oui','non') default NULL, `case20_0` enum('oui','non') default NULL, `case20_1` enum('oui','non') default NULL, `case21_0` enum('oui','non') default NULL, `case21_1` enum('oui','non') default NULL, `case22_0` enum('oui','non') default NULL, `case22_1` enum('oui','non') default NULL, `case23_0` enum('oui','non') default NULL, `case23_1` enum('oui','non') default NULL, `case24_0` enum('oui','non') default NULL, `case24_1` enum('oui','non') default NULL, `id_pays` int(11) default NULL, `id_film` int(11) default NULL, PRIMARY KEY (`id`), KEY `id_film` (`id_film`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;J'aimerais savoir si par expérience, quelqu'un n'aurait pas une "technique" ou idée qui serait plus judicieuse quant au niveau en temps d'execution.
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
62
63
64
65
66
67
68
69
70
71
72 $id_film=$_REQUEST['id']; include($connexion); mysql_query("DELETE FROM `droits_pays_attributs` WHERE `id_film`='$id_film'") or die(mysql_error()); $exec_requete_select=mysql_query("SELECT * FROM droits_groupe order by nom_groupe ASC") or die(mysql_error()); while($ligne_groupe = mysql_fetch_array($exec_requete_select)){ $id_base=$ligne_groupe['id']; $exec_requete_select2=mysql_query("SELECT * FROM droits_pays where id_groupe='$id_base' order by nom_pays ASC") or die(mysql_error()); $id_pays_base=array(); $case=array(); while($ligne_pays=mysql_fetch_array($exec_requete_select2)){ $id_pays_base[]=$ligne_pays['id']; } $requete_count = mysql_query("SELECT COUNT( * ) NBR_ENTREE FROM droits_pays where id_groupe='$id_base'") or die(mysql_error()); $row_count = mysql_fetch_object($requete_count); for($h=0;$h<$row_count->NBR_ENTREE;$h++){ for($k=0;$k<25;$k++){ for($w=0;$w<2;$w++){ if($_REQUEST["case_".$id_pays_base[$h]."_".$k."_".$w]=='oui'){ $case[$k][$w] ='oui'; } else{ $case[$k][$w] ='non'; } } } } for($h=0;$h<$row_count->NBR_ENTREE;$h++){ $emplacement_0 = array();$emplacement_1 = array();$valeur_0 = array();$valeur_1 = array(); for($k=0;$k<25;$k++){ $emplacement_0[$k] = "case".$k."_0"; $emplacement_1[$k] = "case".$k."_1"; $valeur_0[$k] = $case[$k][0]; $valeur_1[$k] = $case[$k][1]; } $sql = "INSERT `droits_pays_attributs` SET `id_pays`='$id_pays_base[$h]', `id_film`='$id_film', ". "`$emplacement_0[0]`='$valeur_0[0]', `$emplacement_1[0]`='$valeur_1[0]', ". "`$emplacement_0[1]`='$valeur_0[1]', `$emplacement_1[1]`='$valeur_1[1]', ". "`$emplacement_0[2]`='$valeur_0[2]', `$emplacement_1[2]`='$valeur_1[2]', ". "`$emplacement_0[3]`='$valeur_0[3]', `$emplacement_1[3]`='$valeur_1[3]', ". "`$emplacement_0[4]`='$valeur_0[4]', `$emplacement_1[4]`='$valeur_1[4]', ". "`$emplacement_0[5]`='$valeur_0[5]', `$emplacement_1[5]`='$valeur_1[5]', ". "`$emplacement_0[6]`='$valeur_0[6]', `$emplacement_1[6]`='$valeur_1[6]', ". "`$emplacement_0[7]`='$valeur_0[7]', `$emplacement_1[7]`='$valeur_1[7]', ". "`$emplacement_0[8]`='$valeur_0[8]', `$emplacement_1[8]`='$valeur_1[8]', ". "`$emplacement_0[9]`='$valeur_0[9]', `$emplacement_1[9]`='$valeur_1[9]', ". "`$emplacement_0[10]`='$valeur_0[10]', `$emplacement_1[10]`='$valeur_1[10]', ". "`$emplacement_0[11]`='$valeur_0[11]', `$emplacement_1[11]`='$valeur_1[11]', ". "`$emplacement_0[12]`='$valeur_0[12]', `$emplacement_1[12]`='$valeur_1[12]', ". "`$emplacement_0[13]`='$valeur_0[13]', `$emplacement_1[13]`='$valeur_1[13]', ". "`$emplacement_0[14]`='$valeur_0[14]', `$emplacement_1[14]`='$valeur_1[14]', ". "`$emplacement_0[15]`='$valeur_0[15]', `$emplacement_1[15]`='$valeur_1[15]', ". "`$emplacement_0[16]`='$valeur_0[16]', `$emplacement_1[16]`='$valeur_1[16]', ". "`$emplacement_0[17]`='$valeur_0[17]', `$emplacement_1[17]`='$valeur_1[17]', ". "`$emplacement_0[18]`='$valeur_0[18]', `$emplacement_1[18]`='$valeur_1[18]', ". "`$emplacement_0[19]`='$valeur_0[19]', `$emplacement_1[19]`='$valeur_1[19]', ". "`$emplacement_0[20]`='$valeur_0[20]', `$emplacement_1[20]`='$valeur_1[20]', ". "`$emplacement_0[21]`='$valeur_0[21]', `$emplacement_1[21]`='$valeur_1[21]', ". "`$emplacement_0[22]`='$valeur_0[22]', `$emplacement_1[22]`='$valeur_1[22]', ". "`$emplacement_0[23]`='$valeur_0[23]', `$emplacement_1[23]`='$valeur_1[23]', ". "`$emplacement_0[24]`='$valeur_0[24]', `$emplacement_1[24]`='$valeur_1[24]'"; mysql_query($sql) or die(mysql_error());; } } include($deconnexion);
Voilà, je vous remercie par avance.
Partager