|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2008 Messages : 14 ![]() |
bonjour;
je suis débutant en programmation php et je veux réaliser une formule de calcul : j'ai trois champs dynamiques dans ma table et je veux appliquer cette formule au troisième champ : champ3 = (champ2-champ1)/100 sachant que les trois champs appartiennent à la même table et afficher bien sur mon champ3 |
|
|
00
|
|
|
#2 | ||
![]() ![]() Thomas RambaudDéveloppeur Web Inscription : décembre 2007 Messages : 2 139 ![]() |
Bonjour,
Il faut faire une requête SQL de base : Ex avec mysql : Code :
|
||
|
00
|
|
|
#3 | |||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 708 ![]() |
Salut
Citation:
Théoriquement (donc vraiment en théorie), il est préférable de faire le calcul "à la volée", à la demande. Dans le jargon, on on appel ça des données redondantes, c'est quasi de la duplication de données. On retrouve tout de même ce genre de chose, mais c'est très souvent pour des questions d'optimisations qu'on transgresse un peu ces bonnes règles. Donc d'enregistrer uniquement les 2 champs en Bdd, puis si on souhaite obtenir le calcul sur ces 2 champs, et bien faire la requête suivante : Code :
Mise à part ça, et si tu veaux quand même avoir ce champ3 dans la table avec le calcul, alors il faut que le calcul soit fait au-préalable, aussi bien lors de l'insertion (INSERT INTO) de même qu'à la mise à jour (UPDATE). - A l'insertion, en toute logique le calcule devra être fait avec les données qu'on doit avoir sur le coude, vu que l'enregistrement n'existe pas encore. - Pour un UPDATE, là on pourra le faire coté SQL, en utilisant le même code que plus haut. (UPDATE ... SET champ3 = (champ2-champ1)/100 ...). Mais j'insiste, il faut bien voir que si on effectue une modification sur le champ1 ou le champ2, que ce soit via une application en Php ou directement dans la Bdd (genre PhpMyAdmin), il ne faudra pas oublier de mettre à jour le champ3 aussi, sinon ça débouche sur des incohérences. C'est pour ça que ce n'est pas recommandé. En faisant "à la volée", le calcul sera toujours correcte.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|||
|
|
10
|
|
|
#4 | ||
![]() ![]() Thomas RambaudDéveloppeur Web Inscription : décembre 2007 Messages : 2 139 ![]() |
Je me demande si tu ne souhaitais pas mettre à jour ta table directement, si c'était le cas :
Code :
|
||
|
00
|
Copyright © 2000-2012 - www.developpez.com