dwa rekordy o tej samej nazwie |
dwa rekordy o tej samej nazwie |
22.09.2020, 08:30:34
Post
#1
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 16.08.2017 Ostrzeżenie: (0%) |
Posiadam poniższą bazę danych
Mam problem kiedy w bazie danych są dwie osoby o tej samym imieniu i nazwisku. Mam poniższe zapytanie jednak nie spełnia ono swojego zadania.
Ten post edytował inomi13 22.09.2020, 08:34:30 |
|
|
22.09.2020, 09:06:30
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 447 Pomógł: 6292 Dołączył: 27.12.2004 |
Trudno zeby spelnialo skoro php pluje PARSE ERROR...
Nie mozesz w " wkladac " Tak ma byc $result = $connect->query("SELECT * FROM `persons` where name = 'Jan Kowalski' and confirm = '1'"); przenosze -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
22.09.2020, 09:12:07
Post
#3
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 26.07.2019 Ostrzeżenie: (0%) |
|
|
|
22.09.2020, 09:24:15
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 447 Pomógł: 6292 Dołączył: 27.12.2004 |
No to teraz, jak juz masz poprawny gramatycznie kod php, to w czym dokladnie problem? Co znaczy, ze nie rozwiazuje to twojego problemu? Co sie dzieje nie tak jak powinno?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
22.09.2020, 09:33:29
Post
#5
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 26.07.2019 Ostrzeżenie: (0%) |
tak jak napisałem powyżej. Mam w bazie danych dwie osoby o tym samym imieniu i nazwisku. Jeżeli jedna z osób zarejestruje konto to w bazie danych pojawi się w kolumnie confirm "1", natomiast jeżeli druga osoba o takim samym imieniu i nazwisku będzie chciała zarejestrować konto to powyższy kod php zwróci błąd "Konto o takim imieniu i nazwisku potwierdziło już rejestrację".
|
|
|
22.09.2020, 09:44:04
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Albo umożliwiaj rejestrację osobom o tym samym imieniu i nazwisku (tak powinno być), albo uniemożliwaj (wtedy nie wpadnie do bazy drugi rekord).
-------------------- |
|
|
22.09.2020, 09:52:10
Post
#7
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 52 Dołączył: 18.02.2008 Ostrzeżenie: (0%) |
ale wtedy w tym drugim przypadku drugi Kowalski powie "do chrzanu taki serwis, spadam stad" Możesz utworzyć w tabeli pole z kluczem złożony np. z nazwiska i id i będziesz wiedział który to Kowalski, bo będzie 1Kowalski, 2Kowalski jak nie masz innych danych typu pesel itd.
gino Ten post edytował gino 22.09.2020, 09:52:25 |
|
|
22.09.2020, 10:13:07
Post
#8
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 26.07.2019 Ostrzeżenie: (0%) |
ok powyższe sugestie rozwiązują problem, natomiast pracuje nad podobnym projektem w którym ręcznie wprowadzane są do bazy danych imiona i nazwiska osób które będą uczestniczyć w evencie i tam też oczywiście mogą wystąpić osoby o tym samym imieniu i nazwisku. Co w sytuacji jeżeli jedna z osób potwierdzi swoje przybycie ? druga osoba o tym samym imieniu i nazwisku nie będzie mogła tego zrobić ponieważ system zwróci błąd "potwierdziłeś już przybycie". Jak rozwiązać taki przypadek ?
|
|
|
22.09.2020, 10:18:03
Post
#9
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 52 Dołączył: 18.02.2008 Ostrzeżenie: (0%) |
dobrze, ale na takie eventy nie logujesz się danymi imię nazwisko, tak naprawdę może zarejestrować się 1000 Kowalskich i nie może być sytuacji w której Twój kod odrzuci już drugiego. Inna sprawa: co innego jest rejestracja o co innego potwierdzenie rejestracji. Pierwszą robi zazwyczaj klient drugą robi Twój kod po zweryfikowaniu danych. W takim przypadku programowi jest wszystko jedno kto się zarejestrował, ma tylko sprawdzić poprawność danych, klepnąć pole confirm i wysłać klientowi że jest zalogowany. Jeśli ta tabela jest kompletna, to nie ma sposobu rozróżnienia który Kowalski jest który. Nie opisałeś dokładnie co chcesz robić, czy to tylko wycinek tabeli, czy klient podaje więcej danych, jak powiadamiasz osobę o klepnięciu rejestracji. Pobierz chociaż emial.
gino edit: coś mi komp zaświrował, więc dokończę: a nawet jak zalogują się imieniem i nazwiskiem to system dla rozróżnienia osoby poprosi poprosi o email Ten post edytował gino 22.09.2020, 10:26:10 |
|
|
22.09.2020, 10:31:06
Post
#10
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 26.07.2019 Ostrzeżenie: (0%) |
też myślałem że dobrym rozwiązaniem było by dorzucić kod, który wprowadzała by dana osoba i to by rozwiązało problem osób o tym samym imieniu i nazwisku. Jednak wytyczne jakie dostałem to że dana osoba ma wejść na stronę wpisać tylko i wyłącznie swoje imię i nazwisko i jeżeli się zgadza to ma otrzymać komunikat że "potwierdzono przybycie". Na ten moment tabela ma kolumny id, name, confirm. Już nawet nie chodzi o to która z osób o tym samym imieniu i nazwisku potwierdziła przybycie tylko każda z osób aby miała taką możliwość.
|
|
|
22.09.2020, 10:49:57
Post
#11
|
|
Grupa: Moderatorzy Postów: 36 447 Pomógł: 6292 Dołączył: 27.12.2004 |
No i super, poraz kolejny sie pytam w czym problem. Nie pisz mi prosze po raz kolejny tego co juz pisales tylko napisz co ci nei dziala. Widze ze masz kod, ktore sprawdza istnienie i zapisuje komunikat bledu. Nie masz nic wiecej, czy masz cos wiecej tylko ci nei dziala? To pokaz tez to cos wiecej i napisz konkretnie ktory kawalek nie dziala
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
22.09.2020, 10:56:56
Post
#12
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 26.07.2019 Ostrzeżenie: (0%) |
Chciałbym tak przerobić poniższe zapytanie aby mimo znalezienia jednego rekordu, który już ma confirm='1"', kolejnej osobie o tym samym imieniu i nazwisku i mającej confirm='0' pozwolił potwierdzić rejestrację.
|
|
|
22.09.2020, 11:16:24
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 447 Pomógł: 6292 Dołączył: 27.12.2004 |
No to zamien
and confirm = '1' na and confirm = 0 i jak bedzie choc jeden taki jeden rekord to pozwoli na potwierdzenie rejestracji. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
22.09.2020, 11:19:07
Post
#14
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 26.07.2019 Ostrzeżenie: (0%) |
To nie jest rozwiązanie bo jeżeli ktoś już potwierdzi przybycie to system ponownie go przepuści i w nieskończoność będzie mógł potwierdzać.
|
|
|
22.09.2020, 11:54:28
Post
#15
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
W nieskończoność nie, w tym przypadku dwukrotnie - raz za siebie, raz za inną osobę.
Wciąż nie dostrzegasz problemu, o którym każdy Ci wspomina? -------------------- |
|
|
23.09.2020, 08:48:40
Post
#16
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 26.07.2019 Ostrzeżenie: (0%) |
Przerobiłem zapytanie według waszych sugestii i nadal to nie działa tak jak chce, ponieważ jeżeli jeden z Janów Kowalskich ma ustawione confirm='0' a drugi confirm ='1' to zapytanie zadziała w w przypadku tego pierwszego.
|
|
|
23.09.2020, 09:03:39
Post
#17
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Przecież tu nie chodzi o zapytanie, tylko o błąd logiczny.
Musisz dodać inny identyfikator, bo nie rozróżnisz dwóch Kowalskich. Jeden może potwierdzić, a dwóch przyjdzie z informacją, że obydwaj potwierdzili. Jak udowodnisz, który z nich mówi prawdę? Dopóki nie dodasz unikalnego identyfikatora (mail, numer telefonu, pesel), to możesz nadal głowić się nad zapytaniem. -------------------- |
|
|
23.09.2020, 09:31:18
Post
#18
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 52 Dołączył: 18.02.2008 Ostrzeżenie: (0%) |
Cytat Jednak wytyczne jakie dostałem to że dana osoba ma wejść na stronę wpisać tylko i wyłącznie swoje imię i nazwisko i jeżeli się zgadza to ma otrzymać komunikat że "potwierdzono przybycie". Więc pozostaje Ci się modlić aby nie zaszła sytuacja o dwóch osobach o takich samych personaliach albo przekonać tego kto Ci to zlecił do dołożenia pola np. mailowego. Już pisałem o tym parę postów wyżej. gino |
|
|
23.09.2020, 09:35:12
Post
#19
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Generuj unikalny kod dla użytkownika w czasie rejestracji (np. Q4AMU) i wyświetl na ekranie. Kiedy będzie chciał potwierdzić rejestrację, poproś o ten kod.
-------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 20:55 |