|
Publicité | ||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Stéphane A.Inscription : décembre 2008 Messages : 286 ![]() |
Bonjour,
Cela fait quelques jours que je travail sur un script de mise a jour des donnée dans une table dans mysql/php. Le script de base fonctionne correctement lors de l'insertion, je voudrais ajouter un test afin de pouvoir mettre à jour certaine ligne en cas de modifications donc j'aurais deux cas si l'enregistrement existe donc j'udapte les mise à jour et s'il n'existe pas alors je fais un insertion Comme tout cela se passe par un fichier je ne sais pas trop comment faire. Voici le code que j'ai commencer a réaliser Code :
Runcafre91 |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 238 ![]() |
Salut
Avant tout, pourquoi mettre une facture dans un fichier txt alors qu'il faudra y insérer les données dans la Bdd après ? Ne serait il pas mieux d'insérer la facture directement dans la Bdd ? Si c'est une certaine contrainte qui oblige à mettre une facture dans un fichier, alors un fichier type XML serait plus approprié non ? Pour la simple raison qu'il est possible de lancer une requête (xpath) dans un xml. Mise à part cette parenthèse ... $tableauValeurs[0] (1,2,3 ...etc ...) sont les données, et théoriquement toujours ordonnées de la même manière, non ? Il doit être possible de lancer un SELECT pour vérifier si le N° de facture existe déjà. Un truc du genre : SELECT COUNT(*) AS total FROM facture WHERE numero_facture = $tableauValeurs[0]
__________________
Win XP | WampServer 2.2 | Apache 2.2.21 | Php 5.3.8 | MySQL 5.5.16 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
00
|
|
|
#3 | |
|
Membre du Club
![]() Stéphane A.Inscription : décembre 2008 Messages : 286 ![]() |
Citation:
Je vais l'appliquer et voir ce que pourrais finaliser ce code en faisant une struture condition pour l'udapte. allé la rényon Runcafre91 |
|
|
|
00
|
|
|
#4 | ||||
|
Membre du Club
![]() Stéphane A.Inscription : décembre 2008 Messages : 286 ![]() |
Bonjour,
J'ai un script pourla mise à jour des donnée dans une base de nonnée mysq grace à un fichier text J'ai ke script suivant mais elle ne fonctionne pas j'ai le mesage d'erreur suivant : Code :
voici le script au complet Code :
Runcafre91 Dernière modification par runcafre91 ; 07/02/2010 à 14h08. |
||||
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 238 ![]() |
A mon avis ce serait plutôt dans ce genre là :
Code :
__________________
Win XP | WampServer 2.2 | Apache 2.2.21 | Php 5.3.8 | MySQL 5.5.16 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] Dernière modification par RunCodePhp ; 01/02/2010 à 05h48. |
||
|
|
00
|
|
|
#6 | ||
|
Membre du Club
![]() Stéphane A.Inscription : décembre 2008 Messages : 286 ![]() |
re,
Merci pour ce code lorsque j'applique le code avec mes modifications, j'ai un message d'erreur Code :
Duplicata du champ '"0319156"' pour la clef 'PRIMARY' Pour l'udapte je ne met que certain champs a jour car risque de changement( mauvaise saisie) voici le code modifié Code :
Je vous remercie de l'aide que vous pourriez m'apporter Runcafre91 |
||
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() Inscription : octobre 2007 Messages : 89 ![]() |
bonjour,
y'a un truc qui peut être utile si dans ton fichier à importer tu as une clef que tu peux stocker en base te permettant d'identifier de façon unique un enregistrement (cles primaire par exemple ou autre, dépend de tes contraintes... le principal c qu'elle soit déclaré en index unique.) dans ce cas tu peux faire : Code :
INSERT INTO projet ( champ1,...) Values (valeur1,...) ON DUPLICATE KEY UPDATE champ1 = VALUES(champ1), ...; je rajouterais que côté perf je serais toi j'utiliserai mysqli ou pdo... enfin, ce que tu préférera celui dont la syntaxe te paraitra la plus simple! mais surtout les requêtes préparées qui non seulement vont te simplifier la vie côté syntaxe mais en plus est imbatable côté perf surtout dans ce genre de traitement! |
|
|
00
|
|
|
#8 | |||
|
Membre du Club
![]() Stéphane A.Inscription : décembre 2008 Messages : 286 ![]() |
Citation:
je vous remercie pour cette solution, j'ai essayé de l'adapté a mon cas et cela me donne le script suivant : Code :
Merci de votre aide Runcafre91 |
|||
|
|
00
|
|
|
#9 | |||
|
Membre du Club
![]() Stéphane A.Inscription : décembre 2008 Messages : 286 ![]() |
Citation:
Y a t'il quelqu'un qui pourrais m'aider sur ce script que je dois mettre en place dans 2 jours Merci de votre aide Runcafre91 |
|||
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() Stéphane A.Inscription : décembre 2008 Messages : 286 ![]() |
Bonjour,
Je relance ce post car j'ai pu négocier un delai pour finaliser ce projet, mais pour l'instant je bloque toujours ce point qui est très important. Je vous remercie de l'aide que vous pourriez m'apporter Runcafre91 |
|
|
00
|
|
|
#11 | ||||||||
|
Membre régulier
![]() Inscription : octobre 2007 Messages : 89 ![]() |
Bonjour,
en fait : Code :
là : Code :
par contre y'a comme un problème sur la requète : 1er point : Code :
Values ($tableauValeurs[0],$tableauValeurs[1]$tableauValeurs[2]$tableauValeurs[3]$tableauValeurs[4]$tableauValeurs[5]$tableauValeurs[6]$tableauValeurs[7]$tableauValeurs[8]$tableauValeurs[9]$tableauValeurs[10]$tableauValeurs[11]$tableauValeurs[12]$tableauValeurs[13]) 2 ème point moins grave : pourquoi tu réutilise ton tableau alors que tu as crée des variables stockant les valeurs à insérer??? Code :
dernier point qui bloque, la partie on duplicate : Code :
ON DUPLICATE KEY UPDATE facture = VALUES($intitule,$annee), $tableauValeurs[2],$tableauValeurs[13 Code :
ON DUPLICATE KEY UPDATE champ1 = VALUES(champ1) Code :
ON DUPLICATE KEY UPDATE facture = VALUES($intitule,$annee), $tableauValeurs[2],$tableauValeurs[13; Code :
Dans ta clause ON DUPLICATE tu mélange alégrement nom de champ et valeur à insérer, ce qui pose pb! Code :
VALUES($intitule,$annee), $tableauValeurs[2],$tableauValeurs[13; dis moi si ça t'aide! Dernière modification par Djef-69 ; 18/02/2010 à 20h17. Motif: pas propre |
||||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com