Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 21.01.2014 Ostrzeżenie: (0%)
|
Chciał bym napisać obsługę wyjątku, który sprawdzi, czy dodawane dane do bazy danych istnieją. Jeżeli tak - wyświetli komunikat, że takie dane już istnieją i zapytanie nie zostanie wykonane.
Powiedzmy, że mam takie zapytanie:
Co teraz zrobić? Znalazłem taką funkcję jak mysql_insert_id(), ale nie wiem czy tutaj ją mogę wykorzystać. Wtedy zapytanie powinno zawierać jeszcze słowo IGNORE. Tabela tabela pole ID ma unikatowe i uzupełniane automatycznie. Wartość tego pola nie jest przekazywana w formularzu, tylko powyższe dane. Dodam, że mój formularz jest umieszczony w pętli foreach, więc w zapytaniu wykorzystuje jeszcze zmienną $i, ale to nie jest teraz istotne. Ten post edytował x X x 27.03.2014, 16:53:20 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 21.01.2014 Ostrzeżenie: (0%)
|
Ale w swojej tabeli nie brałem pod uwagę ID. To co zamieściłem w pierwszym poście to tylko przykładowe dane (IMG:style_emoticons/default/wink.gif) Możliwe iż dostałem taki wynik dlatego, iż pole id również było zaznaczone jako unikatowe. Właśnie to zmieniłem, chciałem wrzucić insertem poprzednie dane, w których dane się dublowały i dostaję komunikat w MySQL że dane się dublują.
Edit: Okej, zmieniłem strukture tabeli, dałem zapytanie. Po pierwsze teraz system automatycznie wykrywa czy dane isnieją i nie dodaje ich do bazy, a za pomocą zapytania z COUNT mogę sprawdzić czy wpis istnieje czy nie. Teraz tylko prosty IF i działam. Pytanie, czy można to zrobić inaczej, skuteczniej, bez niepotrzebnego pobierania danych z tabeli. Jakąś funkcją czy czymś? Ten post edytował x X x 27.03.2014, 17:46:22 |
|
|
|
x X x Nie dodawaj danych z formularza do bazy jeżeli te istnieją - jak ? 27.03.2014, 16:50:21
trueblue Załóż index unikalny na jednym lub więcej pól, lub... 27.03.2014, 17:08:39
webmaniak A słowem kluczowym w budowanym zapytaniu powinno b... 27.03.2014, 17:11:56
x X x Gdy tworzyłem tabelę dopisałem coś takiego na końc... 27.03.2014, 17:21:58
trueblue Jeśli założyłeś również na prac_id, które jest aut... 27.03.2014, 17:26:58
x X x No tak, rzeczywiście. Zaraz to zmienię. Zauwazyłem... 27.03.2014, 17:34:37
trueblue A zauważyłeś, że robisz count również na prac_id? 27.03.2014, 17:35:53
trueblue Po pierwsze nie rób COUNT, bo albo dostaniesz 1, a... 27.03.2014, 17:53:19
x X x A jak się odnieść do wyniku wykonania tego zapytan... 27.03.2014, 18:06:46
trueblue Wydrukuj zmienną, do której przekazujesz wynika z ... 27.03.2014, 18:40:42
x X x Udało mi się zrobić! Zrobiłe zwykłego selecta,... 28.03.2014, 11:35:37 ![]() ![]() |
|
Aktualny czas: 29.12.2025 - 23:21 |