Autor Zpráva
BuGeR
Profil
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
Dobře :) Děkuju moc.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: