begin process at 2012 05 31 06:54:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

probleme de mise a jour de la base de bonnée


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme de mise a jour de la base de bonnée

jeudi 25 juin 2009 à 00:31:52 | probleme de mise a jour de la base de bonnée

Palsajicoco

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: 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']."
"; 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']."
"; mysql_query('UPDATE ressources SET LOCATION="'.$array_chaine1[2].'" WHERE id="'.$donnees['id'].'"'); } $ligne = fgets($monfichier); } mysql_close(); fclose($monfichier); ?> 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 ^^' voile le fichier ressources: 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 -- http://www.phpmyadmin.net -- -- 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');
jeudi 25 juin 2009 à 00:36:21 | Re : probleme de mise a jour de la base de bonnée

kankrelune

Membre Club
Ô_o

lol

@ tchaOo°
jeudi 25 juin 2009 à 01:28:27 | Re : probleme de mise a jour de la base de bonnée (re et dsl ^^)

Palsajicoco

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:
<?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);
?>
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 ^^'
voile le fichier ressources:
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
-- http://www.phpmyadmin.net
--
-- 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');
jeudi 25 juin 2009 à 01:53:04 | Re : probleme de mise a jour de la base de bonnée

nautilus99

Bonsoir,

vu qu ele fichier en entrée est au format csv, il me semble qu ela fonction:

array
fgetcsv ( resource$handle [, int$length [, string$delimiter [, string$enclosure [, string$escape ]]]] )

serait vraiment l'outil voulu...
le tableau retourné équivaut à:
0 => UNIT;
1 => PHYS STATE;
2 => LOCATION;
3 => pas nommé;
4 => INFO

et pour insérer dans la table ou mettre à jour, une tout bête utilisation des champs. Cela simplierait énormément le code.




jeudi 25 juin 2009 à 02:27:15 | Re : probleme de mise a jour de la base de bonnée

Palsajicoco

le format du texte est en csv pour la delimitation en ';' (c'est juste comme un repère pour moi pour la lecture du fichier juste apres) mais le format du fichier est *.txt.
mon probleme est la premiere update ne marche pas alors que la deuxieme marche correctement! ce code repere les difference et les affiche mais la commande update utilisée pour le champ 'PHYS STATE' ne marche pas alors que pour le champ 'LOCATION' marche.
c'est a dire mysql_query('UPDATE ressources SET PHYS STATE="'.$array_chaine1[1].'" WHERE id="'.$donnees['id'].'"'); ne marche pas alors que mysql_query('UPDATE ressources SET LOCATION="'.$array_chaine1[2].'" WHERE id="'.$donnees['id'].'"');  marche.
merci pour l'aide ^^
jeudi 25 juin 2009 à 03:38:57 | Re : probleme de mise a jour de la base de bonnée

kankrelune

Membre Club
vire l'espace ou met un underscore...

>> PHYS_STATE

@ tchaOo°
jeudi 25 juin 2009 à 03:44:31 | Re : probleme de mise a jour de la base de bonnée

kankrelune

Membre Club
au passage...

mysql_query('UPDATE ressources SET phys_state="'.mysql_real_escape_string($array_chaine1[1]).'", SET location="'.mysql_real_escape_string($array_chaine1[2]).'" WHERE id='.(int)$donnees['id']);

en supposant que ton id soit, en toute logique, un int et non un champs char

@ tchaOo°
jeudi 25 juin 2009 à 10:07:54 | Re : probleme de mise a jour de la base de bonnée

nautilus99

Egalement, pourquoi faire l'update en plusieurs étapes, il est aussi simple de faire un simple UPDATE sur l'ensemble des champs, ou un REPLACE pou rle cas (peut-être improbable) où une nouveauté rappliquerait dans le lot.


vendredi 26 juin 2009 à 18:47:26 | Re : probleme de mise a jour de la base de bonnée

Palsajicoco

j'ai changé afin de supprimer l'espace et c'est bien la le problème =)
je vous remercie tous pour votre aide ^^'
bonne continuation.


Cette discussion est classée dans : donnees, array, nh, 1a005, omu


Répondre à ce message

Sujets en rapport avec ce message

mysql_fetch_array [ par ateber ] Bonjour,Je suis une étudiante en informatique. J'ai crée un forum sur un site et qui fonction bien mais aujourd'hui sur local je n'arrive pas affichée TABLEAU PHP [ par daris ] Bonjour,J'ai un tableau qui se présente comme ci dessous.array{    [HUMIDITE] => Array        {            [Humidité] => Array                {        Boucle While une seule réponse [ par Const4ntine ] Bonjour,J'ai une petite erreur, ou disons que le résultat n'est pas à l'hauteur de mes espérances ;)J'ai une mauvaise connaissance des boucles while d array et formulaire [ par laubro ] Bonjourj'ai encore des soucis avec les tableauxvoils, je récuprèe des données dans des champs texte dans un formulaire, je veux pouvoir les modifier e mettre une Array dans une zone de base de données est-ce autorisé ? [ par surotout ] Bonjour,soit un programme maj.phpet le create de la base de donnéesLa mise à jour s'effectue ( une zone numerique évolue)pourtant je ne sais pas relir $variable variable selon le cas. [ par oui14 ] Bonjour à tous.Comme je l'ai écrit dans le titre, je souhaiterais savoir s'il était possible d'attribuer une valeur variable à une variable selon l'en donnees passees en POST se retrouvant avec "_" [ par bouletsensei ] bonjour.Je vais vous exposer mon probleme. J ai un formulaire, dont les donnees sont extraites d une base de donnnees (c est un systeme de sondages). Pas de retour de donnée sur ma page [ par sebing ] Bonjour,Je suis débutant et à bout, je ne vois pas où mon code pêche.Voila j'ai créé une table news avec comme donnée: titre, contenu, id, timestamp, liste déroulante 2 boutons de validation vers 2 pages differentes [ par skull21 ] Bonjour,Voici mon soucis : J'ai une liste déroulante dynamique avec 2 boutons de validation, l'un pour "voir" l'autre pour "modifier" la selection.Je push_array associatif [ par Teddy_le_gnein ] bonjour,j'ai une question qui me semble simple, mais j'ai énormément de mal à trouver la réponse.alors voilà, j'ai une boucle while qui récupère des d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,498 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales