Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] [mysql] porównanie rekordów przed dodaniem
Forum PHP.pl > Forum > Bazy danych
kleszczoscisk
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 smile.gif )
Pozdrawiam
phpion
Możesz zastosować zabezpieczenie po stronie samej bazy danych w postaci nadania kolumnie atrybutu UNIQUE.
nevt
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.
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.