8768 sujets

Développement web côté serveur, CMS

upload/1577814260-77410-formupd.jpg Hello

Il s'agit d'une petite gestion de congélateurs (si...si...), sans enjeu commercial, en php,mysql avec du Jquery pour $ajax etc...
Lorsque le formulaire d'édition d'un produit existant du stock est demandé par l'utilisateur, pour modification, tous les champs modifiables ou non sont affichés et renseignés avec les valeurs de la BD (dans des input, selon leur format : text, date, number, dans des select s'il s'agit de listes, voire dans des checkbox ou des boutons radios.

Au moment de l'update (en php PDO), vaut-il mieux ne fournir à la requête QUE les valeurs qui ont été modifiées, où peut-on laisser agir une requête UPDATE complète, donc contenant tous les champs : la requête mettra TOUT à jour même ce qui n'a pas été modifié.

Cette question pour valider ou non les heures de travail supplémentaire à mettre en oeuvre.
Et aussi pour savoir si cela a vraiment de l'importance.

Et par extrapolation : dans un SI différent, de grande envergue et de grande audience, comment sera traitée cette question : tout mettre à jour où seulement les modifications ?

Merci de votre attention

PS : dans l'image du formulaire ci-jointe, admettons que l'utilisateur ne modifie que le champ Poids/Quantité... Devrai-je filtrer le post du formulaire, en comparant avec les anciennes valeurs, pour n'updater que ce champ ?
Modifié par mcs3591 (31 Dec 2019 - 18:44)
En ce qui concerne les heures de travail et les lignes de code, il me semble que tout mettre à jour est plus économique et moins sujet aux bugs.
Modifié par PapyJP (07 Jan 2020 - 22:27)
Merci PapyJP,

Pour une petite appli, tout mettre à jour reste la solution la plus simple.
Pour des SI plus importants, ce n'est sûrement pas le cas.
Pour le plaisir j'ai concocté une petite routine en JQuery qui passe tous les champs au script d'enregistrement. Mais ceux qui n'ont pas été modifiés ont une valeur nulle. Donc le script php construit une requête en n'utilisant QUE les valeurs modifiées.

Puis, car il me restait un peu de temps, j'ai fabriqué une série d'objets JS qui construisent carrément la requête 'filtrée' à passer en POST. Du coup, le script php ne filtre plus rien et enregistre sans autre traitement juste ce qui est nécessaire.

@JENCAL : salut Smiley smile
Oui, tout dépend du nombre de champs. Mais par ailleurs une boîte de dialogue avec beaucoup de champs, ça n’est pas vraiment le pied pour l’utilisateur.
J’ai fait la même chose que toi il y a quelques années pour un tableau avec une trentaine de lignes et un dizaine de colonnes. Effectivement je n’envoyais que les champs modifiés.
Aujourd’hui je fais plutôt un affichage de la table avec des actions sur un clic dan haque cellule et l’envoie en AJAX les infos correspondantes
@PapyJP
En tout cas, merci pour ton avis.
Ma petite appli "congelo" n'est qu'un élément d'une gestion plus importante.
Cela m'a conforté d'avoir une opinion extérieure et neutre.
En plus, j'ai eu droit à un "bonjour"....
Je résolve le sujet Smiley lol