Bonjour à tous,
Lors de l'enregistrement, pour vérifier si les données ont été modifiées, je les compare avec celles déjà présentes en base de données. N'y aurait-il pas un moyen plus simple? Comment fait-on habituellement?
Bonjour à tous,
Lors de l'enregistrement, pour vérifier si les données ont été modifiées, je les compare avec celles déjà présentes en base de données. N'y aurait-il pas un moyen plus simple? Comment fait-on habituellement?
salut
tu rajoutes un champs MAJ dans ta table, pour chaque membre, et tu fais modifier avec un timestamps par exemple
en meme temps que le membre modifie son champs, la derniere date en timestamps se met a jour grace a un update que tu fais dans le script
du coup tu sauras la derniere date de maj et tu seras si c'est modifier,
Ce n'est pas ce que je veux. Mon formulaire est prérempli avec les données de la base dont la date de mise à jour. Justement, je ne veux pas réenregistrer mon formulaire si aucune donnée n'a été modifiée pour ne pas modifier cette date de mise à jour.
La date de màj ne doit pas être dans le formulaire, car le formulaire peut être soumis xx minutes/heures après son affichage, ce qui fausserait tout
Sur ta table MySQL, tu peux utiliser la clause ON UPDATE CURRENT_TIMESTAMP pour automatiquement màj le timestamp lors de la modif d'un enregistrement :
=> https://dev.mysql.com/doc/refman/8.0...alization.html
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 CREATE TABLE my_table ( ... update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
Au niveau du script, fais juste un UPDATE avec les données du formulaire,
ensuite avec PDO tu peux faire un $statement->rowCount() ( https://www.php.net/manual/fr/pdostatement.rowcount.php ) pour récupérer le nombre de lignes modifiées (0 si pas de modifs),
en cas de modification d'un enregistrement la date de màj sera automatiquement modifiée par MySQL grâce à la clause ON UPDATE présentée plus haut.
Je ne sais pas si ça répond à ton problème précis, mais j'avais fait ce commentaire sur mon blog pour parler du cas où tu insères un tuple et que tu veux savoir si les données modifiables par l'utilisateur l'ont été :
https://www.developpez.net/forums/bl.../#comment12074
PDO, une soupe et au lit !
Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020
@Dendrite: Bonjour et merci Dendrite, tu es sans doute, une de ceux qui étudie le mieux les questions avant d'y répondre. Je t'en remercie.
Pourtant, ce n'est pas encore ça. Je vais tenter de mieux préciser ma question.
Je ne veux pas réenregistrer mes données si l'utilisateur n'a modifié aucun des champs de saisie, justement pour garder la vraie date des dernières modifications effectives, donc la date la plus anciennes à laquelle une modification réelle a été apportée. A la réflexion, je pense que la seule solution sera de recourir à JavaScript.
moimp, la solution que je t'ai fournie répond à ton besoin.
PDO, une soupe et au lit !
Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020
Partager