potresti aggiungere un 2 campi in piu alla tabella, il campo 'status' TINYINT ,e il campo last_mod, int(12) .
nel momento in cui l' admin apre il moudulo di modifica una query porta il campo status a 1, il che indica che la riga non deve essere interrogata da parte del sito , e logghi la data di modifica nel campo last_mod.
se l' admin termina la modifica e lancia il form, una query riporta il campo status a 0,
viceversa se l'admin abbandona la modifica e il campo status è rimasto a 1, o guidi l'admin nel processo di abbandono della modifica e quindi hai la possibilità di riportare quel campo a 0 con una query, oppure in accordo con la durata delle sessioni, ti leghi ad un evento frequente e li inserisci una query che verifica stato e tempo di modifica.
Codice PHP:
$query_str="SELECT * FROM tabella WHERE status=1";
$query=mysql_query($query) or die(mysql_error());
while ($res=mysql_fetch_array($query,MYSQL_ASSOC))
{
$today=get_date();
if (($today[0]-$res['last_mod']) > ini_get('session.gc_maxlifetime')) // se la differenza tra il unixtime di oggi e il unixtime di inizio modifica è superiore alla durata massima di una sessione
{
// querry per riportare lo status a 0
}
}