Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] blokowanie edytowania podczas edycji
Forum PHP.pl > Forum > Przedszkole
calebos
Witam

Mam aplikacje w ktorej tworzy sie pewne 'specyfikacje'.
Sa dwie strony uzytkownikow jedna korzystajaca druga obslugujaca. Edycja specyfikacji zachodzi w sposob:
-wybranie specyfikacji z bazy ktora ma flage aktywna
-edycja w formie przez uzytkownika
-ustawienie flagi edytowanej specyfikacji na nieaktywna
-zapis nowej specyfikacji z flaga aktywna

Problem wielouzytkownikowy : Jak zapobiec edycji tego samego wpisu?
Wiem ze moznaby php'em zapisac jakias flage ze jest edytowany ale ma to duze wady tzn wymaga ustawienia wygaszania tej flagi co niesie ze soba nastepne problemy czyli edycja moze byc jedynie wykonywana w jakims obrebie czasu inaczej przepada edycja.

Wydaje mi sie to malo eleganckim rozwiazaniem - tak naprawde 'ominieciem' problemu kosztem dodaktowych problemow i doczytalem sie ze mozliwe jest dokonanie tego blokowania poprzez transakcje ale za bardzo nie wiem jak to wykonac w php.
Moze macie jeszcze jakis inny pomysl ?
Bardzo dziekuje za pomoc.
Method
Po pierwsze jaka baza? np w oraclu masz FOR UPDATE, jak masz tabele na MYISAM to z tego co kojarze sie nie da ,w MSsql chyba byl Holdlock standardowo w mysqlu LOCK TABLE tabela READ wykonac co sie chce i unlock

Jak nawiązujesz połączenie z bazą? connect() pconnect() odbc oci etc...

Niestety wadą PHP jest że nie ma od tak dostępnych bibliotek, ktore masę rzeczy zrobią za Ciebie jak w J2EE. Chociaz to może i zaleta bo nie trzeba importowac dziwnych klass by wyswietlic HELLO WORLD smile.gif
calebos
Narazie siedze na mysql'u.
Lacze sie przy uzyciu mysql_connect() to chyba mysqli czy cos tedy.
Nadal nie jestem pewny czy zamkniecie okna ta sesja padnie sama w tym samym momencie.
Probowalem TRANSACTION START a potem ten share lock wieszal mi sie jakby skrypt tzn tak zachowywala sie przegladarka.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.