Salve a tutti, mi scuso in anticipo per la mia ignoranza con mysql ma ho un problema a bloccare una riga in modifica, mi spiego meglio:
Sto cercando di realizzare un anagrafico su mysql, quindi ho realizzato la classica tabella anagrafico con nome, cognome, ecc ora mi ritrovo al fatidico problema della modifica concorrenziale, ovvero:
a questo punto mi ritrovo ad aver perso le modifiche fatte dall'utente 1 in quanto sovrascritte dall'utente 2.Utente1 fa una select cercando il codice fiscale di pippo
Utente1 apre la pagina di modifica di pippo nel quale aggiorna qualche campo (ma ancora non ha salvato)
Utente2 fa una select cercando con il codice fiscale di pippo
Utente2 apre la pagina di modifica di pippo nel quale aggiorna qualche campo (ma ancora non ha salvato)
Utente1 salva le modifiche su pippo
Utente2 salva le modifiche su pippo
il problema è che se da 2 pc provo a modificare lo stesso record me lo permette... con tabelle innodb in presenza di una transazione non dovrebbe bloccare la riga fino al commit o alla chiusura della pagina?<?php
mysql_query("BEGIN");
$query_search="SELECT * FROM Anagrafico WHERE CodFis='$codice'";
$result=mysql_query($query_search);
if(!($result)){
die('Errore nella ricerca');
}
$riga=mysql_fetch_array($result);
?>
codice HTML:qui ci stanno i vari campi input e i 2 pulsanti salva=commit annulla=rollback
<?php
mysql_query("UPDATE Anagrafico SET Nome='$_POST[nome]',Cognome='$_POST[cognome]',Birthday='$_POST[born]',Luogo_N='$_POST[comune]',Nazione='$_POST[nazione]',Residenza='$_POST[residenza]',Telefono='$_POST[tel]',Cellulare='$_POST[cel]', Sesso='$_POST[sex]' WHERE CodFis='$_POST[codfis]'");
if(isset($_POST['save_update'])){
mysql_query("COMMIT");
}
if(isset($_POST['rollback'])){
mysql_query("ROLLBACK");
}
?>
sbaglio sul php o sulle query sql?
Grazie per l'aiuto