Page 1 sur 1

Bloquer un poste

Posté : 24 janv. 2008, 14:18
par chill
Bonjour,

Voilà, j'ai un petit problème.

J'aimerais qu'on puisse bosser plusieurs sur une base de données (qui contient numéros de clients, adresse, suivi etc.). Le problème est que j'aimerais que lorsque un d'entre nous a ouvert un poste, un autre ne puisse pas le modifier en même temps.

Est-ce possible?

Merci de vos réponses.

--
Amicalement,

Chill

Posté : 24 janv. 2008, 14:34
par zeus
Comment est-ce que tu accèdes à la base de données ?

Si c'est via PHPMyAdmin, je ne crois pas que ça soit possible.
Si c'est via une application PHP, il te suffit de mémoriser en base qu'un enregistrement est en modification et d'interdire l'accès à la fiche de modification le cas échéant.

Posté : 24 janv. 2008, 14:46
par chill
Bonjour,

Merci de la réponse.
Comment est-ce que tu accèdes à la base de données ?

Si c'est via PHPMyAdmin, je ne crois pas que ça soit possible.
Si c'est via une application PHP, il te suffit de mémoriser en base qu'un enregistrement est en modification et d'interdire l'accès à la fiche de modification le cas échéant.
Non, je fais l'interface moi-même en PHP.

Comment mémorise-t-on en base qu'un enregistrement est en modification?

(encore, merci, hein?)

--
Amicalement,

Chill

Posté : 24 janv. 2008, 14:53
par zeus
Il faut que tu ajoutes 2 champs dans la table en question : en_modification, date_modification.
en_modification contient 0 si l'enregistrement est "libre" ( => pas en modification) ou 1 si l'enregistrement est en modification.
date_modification contient la date de la dernière fois que le champ en_modification est passée de 0 à 1.

Dès que tu ouvres une fiche pour permettre la modification d'un enregistrement, tu changes la valeur du champ en_modification de 0 à 1. Quand la personne valide ou annule cette modification, tu repasse à 0.
Quand une autre personne accède à cette fiche, si le champ en_modification vaut 1 et que date_modification est datée de moins de X minutes, tu refuses l'accès.

L'utilité du champ date_modification est de permettre de ne pas bloquer un enregistrement si la dernière personne a avoir ouvert la fiche a quitté la page autrement que prévu (changer de site, fermer le navigateur, ...)

Posté : 24 janv. 2008, 17:01
par Ryle
J'ajouterais également l'id de l'utilisateur qui effectue la modification.. ça permet de savoir qui bloque l'enregistrement, ce qui peut toujours être interessant également :)

Posté : 24 janv. 2008, 17:10
par Invité
Il faut que tu ajoutes 2 champs dans la table en question : en_modification, date_modification.
en_modification contient 0 si l'enregistrement est "libre" ( => pas en modification) ou 1 si l'enregistrement est en modification.
date_modification contient la date de la dernière fois que le champ en_modification est passée de 0 à 1.
Waow!

super! Merci mille fois à tous les deux.

S-u-p-e-r!

Merci, merci :-)

--
Amicalement,

Chill

Posté : 24 janv. 2008, 17:15
par Sékiltoyai
J'aurais enlevé en_modification, et mis le champ date_modification comme champ NULL, c'est à dire que si une modification est en cours, tu as le timestamp ou la date de début de modification, et si aucune modification n'est en cours, le champ est à NULL. Ca te fait économiser une colonne…

Posté : 24 janv. 2008, 17:59
par zeus
En fait, je pensais conserver la date de la dernière modification :?
C'était dans la même idée que ce que propose Ryle, à savoir conserver un mini historique limité à la dernière modification.

Après, c'est vrai que j'aurais dû le préciser pour que chill choisisse en toute connaissance de cause. :oops: