Mise à jour table MySQL : je galère

Mise à jour table MySQL : je galère - PHP - Programmation

Marsh Posté le 29-11-2002 à 10:07:38    

J'ai une table qui s'appele produits.
Les données sont inserées à partir d'un fichier texte à l'aide
de la commande INSERT.
Jusque là, pas de probleme.
J'ai un champs dans cette table que j'ai nommé "modifiable" qui
a par defaut la valeur "1".
Je met à la main cette valeur à "0" pour les enregistrements que je ne veux pas modifer lors des mises à jour.
Je veux donc à chaque voit que je dispose d'un nouveau fichier texte, mettre à jour cette table.
_ Les enregistrements dont le champs "modifiable" à la valeur "0"
ne doivent pas etre modifiés
_ les autres doivent l'etre si besoin
_ les nouveaux enregistrements doivent etre ajoutés à la table.
 
Si qq peux m'aiguiller sur la logique qu'il faut adopter pour faire ça car j'ai essayer avec REPLACE et UPDATE et ca foire !

Reply

Marsh Posté le 29-11-2002 à 10:07:38   

Reply

Marsh Posté le 29-11-2002 à 10:30:24    

Y resemble à quoi ton fichier texte ?
C'est quoi la structure de ta table.
 
Sinon l'algo de base c'est un truc du genre.
 
Pour chaque ligne du fichier
   Rechercher dans la table si l'enreg existe (Select ...)
   S'il existe et qu'il est modifiable (champ modifiable =1 )
     UPDATE MA_TABLE SET... WHERE...
   Sinon
     INSERT INTO MA_TABLE ...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 29-11-2002 à 11:02:59    

Mon fichier texte est oragnisé de la sorte :
1 enregistrement par ligne, champs séparés par une tabulation.
 
La structure de ma table ? ben le premier champs qui est le code du produit est en "unique".
c'tout !
 
Je vais essayer comme tu me dit mais je pensais que c'etait faisable plus facilment avec update à la place de insert.

Reply

Marsh Posté le 29-11-2002 à 11:55:29    

Ben le UPDATE va pas te faire d'insert en cas d'enreg inexistant !
 
Donc t'es bien obligé de faire un select pour savoir si le produit existe.
 
Donc t'en profite pour récupérer le champ "modifiable" pour ne faire les updates que sur les produits modifiables.
 
Sinon, tu peux faire plus BOURRIN :
 

Code :
  1. Pour chaque produit du fichier
  2.    Tentative d'INSERT
  3.    SI ERREUR
  4.       UPDATE ... WHERE produit='MON_CODE_PRODUIT' AND modifiable=1


Message édité par Mara's dad le 29-11-2002 à 11:56:18

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 29-11-2002 à 13:16:50    

Wé, je voit ce que tu veux dire, je vais essayer la premiere methode, pas la bourrin  :D  
Merci encore

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed