Skocz do zawartości

[php][sql] Aktualizacja danych (tylko tych zmienionych)


dj.drezyna

Polecane posty

Potrzebuję rozbudować pewną klasę wyświetlającą pewne dane o możliwość zapisywania zmian, które dani użytkownicy robią z danymi na tej stronie. Ale marzy mi się coś takiego jak jest PhpMyAdmin, bo tam aktualizując dany rekord wyświetlają się wszystkie dane natomiast jak zmienię tylko jedno pole, to ten program jest na tyle inteligentny, że zrobi UPDATE tabela set zmienna = 'nowa treść' WHERE id=1234 Nie zrobi natomiast tego, że wszystkie dane zostaną nadpisane niezależnie od tego czy się zmieniły czy nie i to że tego nie zrobi jest jak najbardziej prawidłowe.

 

Nie mam pojęcia w jaki sposób jest to w PMA zrealizowane mi podchodzi do głowy jedynie chyba niemądry sposób, a mianowicie myślę, że najpierw sprawdza się jakie dane się zmieniły (wykonując zapytanie o pobranie danych z id=1234 porównanie i aktualizację tylko tych które się zmieniły. Tylko to pewnie nie tak jest zrobione, bo żeby coś zmodyfikować trzeba użyć dwóch, a nie jednego zapytania.

 

Tak więc mam pytanie: W jaki sposób PMA stwierdza, które dane się zmieniły? I czy na pewno nie potrzebuje do tego zapytania pomocniczego.

 

pozdr i dzięki za czas poświęcony na zapoznanie się postem :)

Marek

 

P.S. Prosiłbym o nie pisanie, że sprawdź w źródle PMA, bo ja się w nim zupełnie nie łapię.

Galeria przyrodnicza http://fotokrajobrazy.warmia.pl

Link do komentarza
Udostępnij na innych stronach

No i odpowiedź jest jednak prosta można by powiedzieć, bo nie trzeba sięgać do źródła aplikacji ale do kodu źródłowego strony. Teraz już każdy się domyśli, że jest to rozwiązane przez duplikację każdej z danych. I tak źródło jest ,,grubsze'' ale za to ilość zapytań się nie zwiększa, a UPDATE robi się faktycznie tylko na danych które się zmienią.

 

Tak czy inaczej przepraszam za zawracanie głowy ale może temat komuś się przyda...

Galeria przyrodnicza http://fotokrajobrazy.warmia.pl

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...