Bonjour, je viens içi car j'ai un problème avec mon code. Voilà, je souhaite chargé un fichier csv dans ma base de données wamp. Ensuite, je dois ajouter une colonne à la fin de cette table puis, la remplir depuis une autre table.
Dans test_table, j'ai plusieurs champs tel que le nom de la personne, celle de son époux, la date de mariage. Un seul des 2 noms peut être rempli ou les 2. Je possède une table avec le nom de toutes les personnes et la zone géographique de leur habitation. Je souhaite faire grâce à mes requêtes remplir le champs zone de ma test_table par celui qui correspond à la personne depuis la 2nde table.

Voilà le code que j'ai implémenter mais il est très très lourd et ne fait pas le tour de toute ma base de données pour l'implémentation de la zone sachant que j'ai pour le moment environ 7000 lignes. Quelqu'un aurait-il une solution plus légère ou une qui fasse au moins toute les lignes?
De plus, je souhaite éxécuté ce code à un intervalle de temps prévu. On m'a parlé de CronTab et At mais je ne comprends pas comment m'en servir. Quelqu'un pourrait-il aussi m'aiguiller pour cela

Code php : 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
// connexion à la BDD
	$serveur = "localhost";
	$login = "root";
	$mdp = "";
	$datebank = "orfea";
	$bdd = mysql_connect($serveur, $login, $mdp) or die("Erreur de connexion à la BDD");
	mysql_select_db($datebank) or die ("No database found !");
	set_time_limit(0);
	$sq = "DELETE FROM test_table";
	//Vide la table test2 pour éviter les doublons
	mysql_query($sq);
	$suppzone = "ALTER TABLE test_table DROP COLUMN zone";
	mysql_query($suppzone);
	$insert = "LOAD DATA LOCAL INFILE 'D:/wamp/www/Orfea/Excel/test_table.csv' INTO TABLE test_table FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"' IGNORE 1 LINES";
	$db = mysql_query($insert) or die (mysql_error());
	$addc = "ALTER TABLE test_table ADD zone VARCHAR(255)";
	$db1 = mysql_query($addc) or die (mysql_error());
	$db2 = mysql_query('SELECT Nom_princ, Nom_epoux
						FROM tact_table
						') or die (mysql_error());
	while($donnees = mysql_fetch_assoc($db2)) 
	{
		if($donnees['Nom_princ'] !== ' ')
		{
			$nom = $donnees['Nom_princ'];
			$query = "UPDATE test_table, charge
					  SET test_table.zone = charge.Zone
					  WHERE test_table.Nom_princ = charge.Nom
					  AND test_table.Nom_princ = '$nom'";
			$remplzone = mysql_query($query) or die (mysql_error());
		}
		else
		{
			$nom = $donnees['Nom_epoux'];
			$query = "UPDATE test_table, charge
					  SET test_table.zone = charge.Zone
					  WHERE test_table.Nom_epoux = charge.Nom
					  AND test_table.Nom_epoux = '$nom'";
			$remplzone = mysql_query($query) or die (mysql_error());
		}
	}