Autor | Zpráva | ||
---|---|---|---|
Doom4 Profil * |
#1 · Zasláno: 18. 2. 2006, 16:06:11
Dobry den chtel bych se zeptat jak osetrit formular tak aby do nej clovek zadal napr jedno jmeno ale to same nemohl zada po druhe :-( jak to udelat treba pres ip adresy nebo je proto nejaky script pres javascript ?
|
||
Leo Profil |
#2 · Zasláno: 18. 2. 2006, 16:36:42
Zadat muze co chce. Otazka je ceho chcete docilit na serveru? Aby se to samy dvakrat neulozilo do databaze nebo co? Leo
|
||
Doom4 Profil * |
#3 · Zasláno: 18. 2. 2006, 16:45:45
Mno reknemez ze do formulare se zadavaji jmena a ty jmena jdou do databaze a z databaze ty jmena se zase vypisuji ven do tabulky , neco jako guestbook ,a jak udelat aby se nestalo ze by nekdo dvakrat zadal jmeno zum beispiel Petr
|
||
Leo Profil |
#4 · Zasláno: 18. 2. 2006, 17:16:25
V databazi nastavit pro dany sloupec klic (unique), pak to selze pri pokusu o vlozeni duplicitni hodnoty, coz se v PHP snadno zjisti a podle toho se zaridi vystup do html. Leo
|
||
Jack Profil * |
#5 · Zasláno: 18. 2. 2006, 18:16:02
Ono to automaticky selze pri zadavani duplicitniho klice ? Tedy kdyz si tam dam ID a dam tomu primary key, tak se nemuze stat ze tam budou 2X dve stejna cisla ? Ale ono to je tak ze vlozim Petr a id je 1 vlozim Petr znovu a id je 2 atd :-( takze to vyjde na stejno
|
||
WanTo Profil |
#6 · Zasláno: 18. 2. 2006, 18:20:08
Jack
Imho unique nemusí být jen primary key. Taky je tu další možnost, že ID nebude číslo, ale md5 hash z jména. |
||
Jack Profil * |
#7 · Zasláno: 18. 2. 2006, 18:34:18
To WanTo: A na to jak ? :-( :D to se muze kazdemu jmenu priradit unikatni hash ?
|
||
WanTo Profil |
#8 · Zasláno: 18. 2. 2006, 18:37:01
Jack
Nejjednodušší bude označit sloupec se jménem jako UNIQUE. To uděláš jedním kliknutím v phpMyAdminu. to se muze kazdemu jmenu priradit unikatni hash ? Jo, jde to tak. Když ID vygeneruješ pomocí funkce md5 (umí jí myslím jak PHP tak MySQL), tak pro každá dvě stejná jména bude stejný i tenhle hash. |
||
Leo Profil |
#9 · Zasláno: 18. 2. 2006, 19:00:41
S primarnim klicem to nema co delat, proste nastavite unique (alespon v MySQL) pro sloupec jmeno, Leo
|
||
thingwath Profil |
#10 · Zasláno: 18. 2. 2006, 19:12:43
Primární klíč musí už z principu být unikátní. Jenže když se tam dá další sloupec s ID a řekne se, že je to primární klíč, tak je primární klíč překvapivě opravdu to ID a sloupec se jmény může být opět jak chce :-)
|
||
Leo Profil |
#11 · Zasláno: 18. 2. 2006, 19:18:00
Primarni klic je unikatni, ale sloupec muze byt unikatni bez toho, aby byl primarni. Leo
CREATE TABLE `uzivatele` ( `id` int(10) unsigned NOT NULL auto_increment, `jmeno` char(20) default NULL, PRIMARY KEY (`id`), UNIQUE KEY `jmeno` (`jmeno`) ) TYPE=MyISAM |
||
Jack Profil * |
#12 · Zasláno: 18. 2. 2006, 19:51:36
Tedy staci jen dat sloupci jmeno Unique key ?
|
||
thingwath Profil |
#13 · Zasláno: 18. 2. 2006, 22:59:44
Jo. Každopádně je pak dobré si ohlídat, že databáze vrátila chybu a uživateli o tom říct. Není už to samozřejmě nutné :-)
|
||
Leo Profil |
#14 · Zasláno: 18. 2. 2006, 23:18:36
Ano, jak pise thingwath - pokud chcete zpetnou vazbu, tak odchytite mysql_error (nebo cislo chyby, to se lip zpracovava) a zaonacite podle toho vystup, Leo
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0