Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 164 Pomógł: 3 Dołączył: 13.12.2007 Ostrzeżenie: (0%)
|
Witam
Baza ma rekordy, powiedzmy z 15 pól każdy, blokuję warunkiem WHERE możliwosc dodania rekordu kiedy określone jedno z tych pól ma identyczną wartość. Zależy mi aby sprawdzić czy pozostałe 14 pól ma wartości identyczne z danymi z formularza i jeśli choć jedno jest inne - umożliwić nadpisanie. Czy robić to również za pomocą WHERE? Bo coś mi sie wydaje, że to jest nieprawidłowe, a conajmniej nieoptymalne (słabo wygląda taki wąż warunków Pozdrawiam -------------------- |
|
|
|
![]() |
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
Możesz zastosować zabezpieczenie po stronie samej bazy danych w postaci nadania kolumnie atrybutu UNIQUE.
|
|
|
|
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%)
|
Poczytaj w manualu o składni polecenia REPLACE - w skrócie: działa jak połączenie INSERT I UPDATE w jednym. Jeżeli istnieje rekord o danym ID to robi to samo co UPDATE, a jeżeli nie, to dopisuje dane jak INSERT. To powinno rozwiązać twój problem. Poza tym twoim przypadku raczej nie ma sensu sprawdzać, czy 15 pól ma identyczne wartości z tymi co chcesz zapisać. Jeżeli "nadpiszesz" takimi samymi wartościami, to w bazie nic się nie zmieni, a wykona się pewnie szybciej niż wyszukiwanie i sprawdzanie całego rekordu. Powodzenia.
-------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.08.2025 - 02:43 |