Bonjour, mon programmme conciste a faire une mise a jour de la base de donnée a partir d'un fichier texte. j'ai ecris le code suivant:
je commence par faire ma connection puis extraire le tableau en question (ressources). la boucle while permet juste de reperer le debut du tableau on peut la depasser. Apres une autre boucle while afin de parcourir tout le tableau contenant deux condition sur les variables contenue dans la base de donnée et dans mon fichier(Ecrire le changement et faire la mise a jour par le suite). L'affichage du changement s'exécute normalement mais le problème c'est que la mise a jour se fait que pour le champ location alors que c'est le meme code pour le champ location et phys state. merci d'avance pour l'aide ^^'
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 <?php mysql_connect("localhost", "root", ""); mysql_select_db("tuniproject"); $reponse = mysql_query("SELECT * FROM ressources"); $monfichier = fopen("ressources.txt", "r+"); $repdeb="med"; while ($repdeb!="UNIT" or $repdeb<0 or $repdeb>500) { $ligne = fgets($monfichier); $array_chaine = explode(';', $ligne); $repdeb=$array_chaine[0]; } $ligne = fgets($monfichier); while ($ligne!="") { $donnees = mysql_fetch_array($reponse); $array_chaine1 = explode(';', $ligne); if ($array_chaine1[1] != $donnees['PHYS STATE']) { echo "changement du statut physique ".$donnees['PHYS STATE']." en ".$array_chaine1[1]." dans ".$donnees['UNIT']."<br />"; mysql_query('UPDATE ressources SET PHYS STATE="'.$array_chaine1[1].'" WHERE id="'.$donnees['id'].'"'); } if ($array_chaine1[2] != $donnees['LOCATION']) { echo "changement de la location ".$donnees['LOCATION']." en ".$array_chaine1[2]." dans ".$donnees['UNIT']."<br />"; mysql_query('UPDATE ressources SET LOCATION="'.$array_chaine1[2].'" WHERE id="'.$donnees['id'].'"'); } $ligne = fgets($monfichier); } mysql_close(); fclose($monfichier); ?>
voile le fichier ressources:
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 UNIT;PHYS STATE;LOCATION;;INFO ET-768;WO-EX;1A005-06;OMU-1;- ET-769;SE-NH;1A005-06;OMU-1;- ET-770;SE-NH;1A005-02;OMU-1;- ET-771;SE-NH;1A005-06;OMU-1;- ET-772;WO-EX;1A005-09;OMU-1;- ET-773;WO-EX;1A005-05;OMU-1;- ET-774;SE-NH;1A005-05;OMU-1;- ET-775;SE-NH;1A005-02;OMU-1;- ET-776;WO-EX;1A005-05;OMU-1;- ET-777;SE-NH;1A005-06;OMU-1;- ET-778;SE-NH;1A005-02;OMU-1;- ET-779;SE-NH;1A005-07;OMU-1;- ET-780;WO-EX;1A005-06;OMU-1;- ET-781;SE-NH;1A005-06;OMU-1;- ET-782;SE-NH;1A005-06;OMU-1;- et voila le code sql de la base: -- phpMyAdmin SQL Dump -- version 2.9.1.1 -- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a> -- -- Serveur: localhost -- Généré le : Mercredi 24 Juin 2009 à 23:28 -- Version du serveur: 5.0.27 -- Version de PHP: 5.2.0 -- -- Base de données: `tuniproject` -- -- -------------------------------------------------------- -- -- Structure de la table `ressources` -- CREATE TABLE `ressources` ( `id` int(50) NOT NULL, `UNIT` varchar(20) NOT NULL, `PHYS STATE` varchar(5) NOT NULL, `LOCATION` varchar(8) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Contenu de la table `ressources` -- INSERT INTO `ressources` (`id`, `UNIT`, `PHYS STATE`, `LOCATION`) VALUES (1, 'ET-768', 'WO-EX', '1A005-06'), (2, 'ET-769', 'SE-NH', '1A005-06'), (3, 'ET-770', 'SE-NH', '1A005-06'), (4, 'ET-771', 'SE-NH', '1A005-06'), (5, 'ET-772', 'SE-NH', '1A005-06'), (6, 'ET-773', 'SE-NH', '1A005-06'), (7, 'ET-774', 'SE-NH', '1A005-06'), (8, 'ET-775', 'SE-NH', '1A005-06'), (9, 'ET-776', 'SE-NH', '1A005-06'), (10, 'ET-777', 'SE-NH', '1A005-06'), (11, 'ET-778', 'SE-NH', '1A005-06'), (12, 'ET-779', 'SE-NH', '1A005-06'), (13, 'ET-780', 'WO-EX', '1A005-06'), (14, 'ET-781', 'SE-NH', '1A005-06'), (15, 'ET-782', 'SE-NH', '1A005-06');
Partager