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 
    
}
  }