Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> update różńych pół
maciu
post 29.07.2006, 09:39:10
Post #1





Grupa: Zarejestrowani
Postów: 238
Pomógł: 1
Dołączył: 27.08.2003

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


Mam tabele bazy danych z kilkoma polami: id, imie, nazwisko, telefon

Gdy chcę zmodyfikować dany rekord to wyświetla mi się formularz z wpisanymi tam danymi rekordu, które mogę modyfikować. Raz mogę chcieć zmienić samo pole imie, raz np. wszystkie pola.

I teraz w zapytanie UPDATE muszę za każdym razem modyfikować wszystkie pola, mimo, że zmieniłem tylko jedno? Przez formularz przesyłane są ponownie wszystkie pole przez $_POST, więc nie mogę sprawdzić, które pola zostały zmodyfikowane, bo za każdym razem przesłane zostaną wszystkie.

Czy jest jakiś mechanizm, który sprawdza, które pola naprawde zostały zmienione, a które nie? Czy też mam się tym w ogóle nie przejmować i updatować wszystkie pola, bo na wydajności nie wiele się straci?
Go to the top of the page
+Quote Post
Denver
post 29.07.2006, 10:37:42
Post #2





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 24.09.2003
Skąd: Giżycko / Wrocław

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


Jedno zapytanie UPDATE nie jest aż tak pamięciożerne, tym bardziej jeśli są to bardzo małe ilości danych. Zapisywanie tylko zmienionych pól może czasem być niepożądane np. w sytuacji, gdy równolegle z Tobą ktoś inny edytuje te same dane. Załóżmy taką sytuację:

1. Otwierasz panel edycji.
2. Sekundę po tobie panel otwiera także inny adminsitrator.
3. Administrator ten zmienia wszystkie pola i je wysyła.
4. Sekundę po nim ty wysyłasz tylko dwa zmienione pola.

Jeśli opracowałbyś jakiś mechanizm zmiany tylko i wyłącznie tych pól, do których została wpisana inna treść niż ta wyciągnięta z bazy, to po zapisie swojego formularza widniałyby tylko dwa "twoje" pola, a reszta miałaby treść zapisaną przez drugiego administratora. Sam zdecyduj, czy takie rozwiązanie byłoby pożądane.

Mógłbyś też sprawdzać, które pola zostały zmienione najpierw poprzez wykonanie zapytania SELECT i porównanie wysłanych wartości z obecnymi wartościami w bazie - ale to już są dwa zapytania.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 13:52