Autor | Zpráva | ||
---|---|---|---|
BuGeR Profil |
#1 · Zasláno: 20. 1. 2012, 23:59:35
Zdravím.
Mám anketu, k té mám SQL tabulku do které ukládam uživatelé, kteří již hlasovali. Jako identifikátor pro uživatelé používám IP adresu. IP adresy odděluji středníkem. Takto teda vypada pole: "192.168.1.1;192.168.1.2;192.168.1.3;192.168.1.4;192.168.1.5" atd. Lze nějak, pomocí SQL dotazu ověřit, zda uživatel již hlasoval (zda tam má už uloženou IP adresu)? Samozřejmě to jde dělat v PHP (projít pomocí explode() všechny hodnoty, a ověřit zda tam ta IP je nebo ne). Ještě mě napadlo, využít LIKE, ale nejsem si teď přesně jistý, jestli to k tomu přesně slouží. Díky všem. |
||
Tori Profil |
BuGeR:
LIKE je pomalé. Kdybyste jako oddělovač používal čárku, tak můžete využít funkci FIND_IN_SET - je rychlejší než LIKE. Obojí je ale nešikovné - kdybyste to ukládat po jedné hodnotě na řádek (třeba do samostatné tabulky, sloupce id_anketa + IP), líp a rychleji by se s těmi daty pracovalo, mohl byste pro zabránění opakovanému hlasování využít unikátní index místo kontroly v PHP atd. |
||
BuGeR Profil |
#3 · Zasláno: 21. 1. 2012, 11:04:08
Dobře :) Děkuju moc.
|
||
Časová prodleva: 11 let
|
0