Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> update
stysiek
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 22.09.2003

Ostrzeżenie: (0%)
-----


Mam pytanko jak zrobic selecta, i przy edycji zeby inny user nie mogl wejsc na ten sam rekord w tym czasie


(blokada przed jednoczesna edycja przez dwie osoby)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adwol
post
Post #2





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

Ostrzeżenie: (0%)
-----


Cytat
a po to ze jak osoba edytuje np 10 min to inna nie moze wejsc w tym czasie i zacząć edytować

Ja bym tego nie polecał zwłaszcza w aplikacjach WWW. Co jak edytującemu wysypie się przeglądarka, albo tak jak pisałeś pójdzie na kawę? Nikt nie może przedytować tego rekordu aż do wygaśnięcia sesji. Ja bym się wkurzył gdybym dostał komunikat, że wiersz jest zablokowany przez kogoś, kto zapomniał o tym że miał zapisać zmiany i poszedł do domu. :wink:

Można to zrobić dodając do tej tabeli pole edited w której umieszaczne by było id usera który edytuje wiersz (albo NULL gdy nie jest edytowany).
Pobranie do edycji wyglądało by tak:
[sql:1:54457986be]update tabela set edited='uid' where edited is null and id='costam'
[/sql:1:54457986be]Po tym zapytaniu, jeśli ilość zmodyfikowanych wierszy (DBMS powinien zwracać takie coś) jest > 0 wiersz jest traktowany jak zablokowany i przejęty do edycji. Jeśli ta ilośc jest równa 0 to wiersz jest aktualnie edytowany przez kogoś innego.
Po zapisie, należałoby go odblokować przez:
[sql:1:54457986be]update tabela set edited=null where edited='uid' and id='costam'[/sql:1:54457986be]
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 11:57