Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1916 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  misa a jour bdd mysql par access

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

misa a jour bdd mysql par access

n°1011893
topheee
Posté le 14-03-2005 à 11:45:25  profilanswer
 

Bonjour,
 
Voici ma question : est-ce que vous avez trouvé un moyen pour mettre à jour une base de donnée mysql (qui tourne sur un serveur et est exploité par php) par une base access qui est installée offline, chez le client.
 
Contraintes : C'est pas pour des pros de l'informatique ... donc faut que je leur fasse une solution où on clique sur quelques boutons mais rien de plus.
 
! Précisions : Vous pourriez me dire qu'il est tout simple de faire un csv et ensuite de générer les requete "INSERT INTO ..."
 
MAIS : le problème est que le client a plus de 5000 fiches (pour l'instant ...) donc hors de question de les mettre toutes dans un seul fichier csv et de faire l'insertion en une fois en générant la requete.
-> Exporter seulement les fiches modifiées dans access réduirait de beaucoup le volume de fiche à traiter. Mais cela veut dire qu'il pourrait y en avoir des anciennes et des nouvelles (donc pas de routine avec INSERT).
 
J'ai cherché sur internet et je n'ai pas trouvé de personnes ayant rencontré précisément ce problème ... pourtant, je doute que je soit le premier à vouloir faire une maj de access vers php mysql ...
 
Topheee

mood
Publicité
Posté le 14-03-2005 à 11:45:25  profilanswer
 

n°1011897
Xav_
The only one...
Posté le 14-03-2005 à 11:49:20  profilanswer
 

elles sont modifiées comment dans Access les données ???  
si c'est par l'utilisateur via un/des formulaire, ben c'est lors des modifs dans access que tu génère ton CSV, celui-ci contiendra les modifs, et uniquement elles.
Et dans le scripts de MAJ de mysql, qui triture ce CSV et génère les requetes, ben à la fin tu supprime le CSV (ou tout au moins tu le vide)...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1011907
soju
One shot !
Posté le 14-03-2005 à 11:53:27  profilanswer
 

il existe des drivers mysql pour access qui fonctionnent assez bien.

n°1011918
topheee
Posté le 14-03-2005 à 12:01:06  profilanswer
 

Xav_ a écrit :

elles sont modifiées comment dans Access les données ???  
si c'est par l'utilisateur via un/des formulaire, ben c'est lors des modifs dans access que tu génère ton CSV, celui-ci contiendra les modifs, et uniquement elles.
Et dans le scripts de MAJ de mysql, qui triture ce CSV et génère les requetes, ben à la fin tu supprime le CSV (ou tout au moins tu le vide)...


Via le formulaire mais aussi dans les tables ... donc les données seront exportées toutes en même temps.
 
 :na: Il me vient une idée, le csv que j'importe contiendra aussi bien les fiches modifiées que les fiches crées. Alors, dans le script qui traite le csv, il pourrait comparer la clé primaire de la fiche du csv (qui vient d'access) avec celle qu'il y a dans mysql et :
- si c'est une nouvelle fiche : il génére un "INSERT INTO ..."
- si c'est une fiche déjà présente : il génère un "UPDATE ..."
 
Dites moi ce que vous en pensez ...
 
Topheee

n°1011921
topheee
Posté le 14-03-2005 à 12:02:21  profilanswer
 

soju a écrit :

il existe des drivers mysql pour access qui fonctionnent assez bien.


Oui, mais je ne pourrai pas me connecter à la base qui est online ...
 
Topheee

n°1011931
topheee
Posté le 14-03-2005 à 12:10:28  profilanswer
 

topheee a écrit :


 :na: Il me vient une idée, le csv que j'importe contiendra aussi bien les fiches modifiées que les fiches crées. Alors, dans le script qui traite le csv, il pourrait comparer la clé primaire de la fiche du csv (qui vient d'access) avec celle qu'il y a dans mysql et :
- si c'est une nouvelle fiche : il génére un "INSERT INTO ..."
- si c'est une fiche déjà présente : il génère un "UPDATE ..."
 
Dites moi ce que vous en pensez ...
 
Topheee


 
En y repensant, ça va bouffer du temps serveur et être source d'erreur ...
 
Topheee

n°1011933
Xav_
The only one...
Posté le 14-03-2005 à 12:11:11  profilanswer
 

Citation :

Dites moi ce que vous en pensez ...


ben vi, c'est kler que faut que tu check ce qui existe pour savoir si c'est INSERT ou UPDATE...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1012049
topheee
Posté le 14-03-2005 à 14:14:37  profilanswer
 

Ca y est, je pense avoir trouvé une solution relativement simple et rapide ...
 
$sql="LOAD DATA INFILE '$fichier_csv' REPLACE INTO TABLE `$table` FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\\\' LINES TERMINATED BY '\r\n'";
 
C'est inspiré de l'insertion de csv dans phpmyadmin. Mais alors y a un truc auquel il faut faire attention, SEULS les champs TEXT (donc je ne parle pas des champs varchar et autres) doivent etre entre guillemets et ne pas oublier les antislashes pour les guillemets et apostrophe (et autres trucs infames qui feraient foirer une requete).
 
D'ailleurs, y'aurait pas une fonction dans access qui fait ça : qui protège les caractères interdits par un slashe ? (Parce que je ne m'occupe pas du développement de la partie access, je fais la partie php/MySQL, donc ce serait pour préciser au type qui s'occupe d'access ce qu'il doit faire).
 
Topheee

n°1012082
Xav_
The only one...
Posté le 14-03-2005 à 14:36:45  profilanswer
 

ben tu le fais toi avec une zoli fonction nommée addslashes de PHP ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1012104
Worldofdad​a
Posté le 14-03-2005 à 14:51:14  profilanswer
 

Une toute petite question qui n'apportera certainement rien mais ...
 
Il ne risque pas d'y avoir des pbs de conflits de données utilisées par plusieurs gars avec ton systeme ?
C'est à dire si 2 gars modifie, en meme temps (ou le meme laps de temps), un enregistrement ? Tu veux le gérer ou sauvegarder le dernier enregistrement uniquement (on écrase la modif du 1er) ?

mood
Publicité
Posté le 14-03-2005 à 14:51:14  profilanswer
 

n°1012109
deliriumtr​emens
sic transit intestinal...
Posté le 14-03-2005 à 14:56:23  profilanswer
 

Pourquoi ne pas te faire envoyer la base Access et mettre à jour la base mysql via ODBC ?
 
(bon ça doit être ce qui a été proposé avant, les drivers MySQL pour Access, mais peut-être que je ne vois pas bien le problème)...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  misa a jour bdd mysql par access

 

Sujets relatifs
foreign key non respecté sous mysqlRequete non acceptee dans ACCESS -> pourquoi ?
Attacher 1 table Access à 1 fichier Excel avec mot de passeOn Update Cascade ? MySQL?
c + mysqlQuel livre PHP/MySQL pour débuter ?
[VB/VBA/VBS] Lier 2 bases access avec VB6[access] Je n'arrive pas à trouver la déclaration d'une fonction
[VBA] Access, rafraichir automatiquement un menu déroulant[SQL Server] mise a jour connection FTP
Plus de sujets relatifs à : misa a jour bdd mysql par access


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR