![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 1.02.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam tabelę: films |film_id|user_id| Która przechowuje głosy oddane przez userów na dany film. Userzy głosują na 10 pozycji. Jeżeli przy wysłaniu formularza nie wykorzystają 10 głosów mogą jeszcze oddać kolejne do max 10 łącznie. Nie mogę poradzić sobie ze sprawdzeniem, czy podczas kolejnego głosowania user nie głosuje na te same pozycje, na które zagłosował wcześniej. Na przykładzie: Podczas pierwszego wysłania danych z formularza user_id=300 zagłosował na 3 film_id=1,5,6 Formularz ma wciąż aktywny, gdyż może oddać jeszcze 7 głosów. W jaki sposób sprawdzić, czy ponownie nie zagłosuje na te same film_id. Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A w tym polu film_id ty faktycznie trzymasz IDki oddzielone przecinkami czy moze kazdy film to oddzielny rekord?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 1.02.2014 Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście oddzielne rekordy.
|film_id|user_id| |2 | 320 | |3 | 320 | |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No to git:
zakladasz klucz uniqe na oba pola i juz sama baza nie pozwoli ci zdublowac filmu dla danego usera. A od biedy mozesz tez sprawdzac zwyklym zapytaniem czy dla danego usera dany film juz jest czy nie. W czym problem? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 1.02.2014 Ostrzeżenie: (0%) ![]() ![]() |
Faktycznie o uniqe nie pomyślałem, ale tak czysto teoretycznie... jeżeli z formularza wychodzi np 8 głosów(czyli 8*film_id) to w jaki sposób skonstruować zapytanie aby każdy z nich sprawdzić pod kątem dubli z już istniejącymi dla danego usera.
Dziękuję @nospor |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 20 Dołączył: 17.01.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
A nie lepiej przy ponownym glosowaniu wyswietlac tylko te filmy w formularzu na ktore jeszcze uzytkownik nie glosowal ?
@nospor- może ale nie robimy systemu bankowego, a tutaj przy kluczu unique system po prostu takie glosy pominie i nic wielkiego sie nie stanie, tak czy siak dla user friendly na pewno lepiej bedzie jesli ponownie nie wyswietli filmow juz ocenianych, a dodatkowe zabezpiecznie dla takiego hakera co wysle swoj request mozna zrobic opcjonalnie i wyslac mu informacje zwrotna ze nie moze czegos takiego robic Ten post edytował ziolo 26.05.2014, 09:27:57 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Robisz 8 oddzielny zapytan i sprawdzasz po kolei. To zadne obciążenie dla bazy.
@ziolo user moze tak spreparowac dane, ze pomimo twojego "zabezpieczenia" i tak wysle filmy, na ktory juz glosowal. mirobor robi dobrze ze chce sprawdzac. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 1.02.2014 Ostrzeżenie: (0%) ![]() ![]() |
Otóż to. Chcę się także uchronić przed spreparowanym chceckboxem.
Jeżeli do 9 zapytań będzie ok, to w porządku. A nie lepiej przy ponownym glosowaniu wyswietlac tylko te filmy w formularzu na ktore jeszcze uzytkownik nie glosowal ? @nospor- może ale nie robimy systemu bankowego, a tutaj przy kluczu unique system po prostu takie glosy pominie i nic wielkiego sie nie stanie, tak czy siak dla user friendly na pewno lepiej bedzie jesli ponownie nie wyswietli filmow juz ocenianych, a dodatkowe zabezpiecznie dla takiego hakera co wysle swoj request mozna zrobic opcjonalnie i wyslac mu informacje zwrotna ze nie moze czegos takiego robic W sumie jest podobnie do tego jak napisałeś. W js napisałem prostą funkcję, która po zagłosowaniu powoduje disabled i checked dla filmów na które user już zagłosował. Jestem mały pikuś, ale myślę sobie tak... normalni userzy zagłosują zwyczajnie i uczciwie i to dla nich powinny być jasne komunikaty. Hackerem o którym piszesz nie ma co się zajmować w kwestii komunikowania mu czegokolwiek. Spreparował chceckboxa, sprawdził, że głosy nie zostały dodane i koniec pieśni. Musi z tym żyć. Czy może się mylę? Ten post edytował mirobor 26.05.2014, 09:27:11 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Hackerem o którym piszesz nie ma co się zajmować w kwestii komunikowania mu czegokolwiek. Spreparował chceckboxa, sprawdził, że głosy nie zostały dodane i koniec pieśni. Musi z tym żyć. No i prawidlowo. Jesli oczywiscie zalozysz te UNIQUE o ktorym pisalem jako pierwszy glowny punkt ![]() Sprawdzac tez mozesz jednym zapytaniem: pobierasz wszystkie filmy na jakie glosowal user (to jedno zapytanie) i sprawdzasz potem juz w php czy znajduje sie jakis co user swiezo wyslal -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 1.02.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Jesli dla normalnych userow, nie wyswietlasz filmow, na ktore juz glosowali, to wydaje mi sie ze nie musisz.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 10:04 |