PHP + Mysql - registrace uzivatelu
Dobry den,
mela bych velkou prosbu na par chytrych hlav Potrebovala bych vyresit nize popsany priklad a jelikoz jsem opravdu velika zacatecnice, budu vdecna za jakoukoliv odpoved (hlavne pro me srozumitelnou )
Jde mi o registraci autoru a prideleni opravneni, do kterych RUBRIK mohou zapisovat nove clanky a do kterych ne.
Mam tabulky AUTORI(id_autora, login, heslo, jmeno, email, ???) a tabulku RUBRIKY(id_rubriky, rubriky). Uzivatel ci administrator, pridava noveho autora prostrednictvim klasickeho formulare v HTML souboru, kde jsou textova pole pro login, heslo, jmeno, email a dale tu mam 8 checkboxu jednotlivych rubrik. Chci napriklad panu Novakovi pridelit, ze muze zapisovat do rubriky 1, 2 a 3, tak zaskrtnu prvni tri checkboxy. Stisknu tlacitko Odeslat a?
Nyni prijde vase chvile Jak by mela vypadat struktura tabulek AUTORI, RUBRIKY. Jaky datovy typ zde pouziju pro jednotlive rubriky? A jak bude vypadat SQL dotaz, ktery provede pridani noveho autora do tabulky AUTORI a zaroven prida pro tohoto autora seznam rubrik, do kterych ma pristup???
Vypis snad uz nejak zvladnu, jde mi hlavne o pridavani. Omlouvam se za svoji nezkusenost a verim, ze to pro vas nebude tezke sousto Jeste jednou dekuji za vase odpovedi a preji hezky den! BTW, pro jistotu uvadim svuj email: tarja.turunen@email.cz
Dekuji!!!
Lucka
Budem stručný, PHP nerobím - len ASP, ale najlepšie by bolo aby si prístup do rubrík urobila cez VARCHAR, to znamená, že AUTORI(id_autora, login, heslo, jmeno, email, rubriky) - vlastne do rubriky budeš ukladať ID čísla vybraných rubrík.
Príklad rubrík :
ID - 1 IT články
ID - 2 Recepty
ID - 3 Politika
ID - 4 Ľudia
ID - 5 Ostatok
Zápis k jednotlivým autorom :
Autor Peter - field rubriky budú obsahovať (1,3,5)
Autor Jano - field rubriky budú obsahovať (2,4)
Potom ak sa autor prihlási a bude chcieť pridať nový článok do rubriky, máš niekoľko spôsobov overenia či môže zapisovať do rubriky.
Príklad 2. spôsobov overenia
1. budeš vyhľadávať v reťazci RUBRIKY - reťazec ID rubriky (ktorý prevedieš na STRING)
2. jednoducho si rubriky prevedieš na ARRAY a porovnáš každú položku (v ASP je SPLIT funkcia)
Doporučujem použiť spôsob č. 2, i keď často používam spôsob č.1. Spôsob č. 1 je nevyužiteľní pri 2 a viac ciferných číslach.
Zápis všetkých rubrík k autorovi :
Neviem ako to funguje v PHP ale myslím, že tak isto ako v ASP. V HTML formulári si názvy všetkých RUBRIK (Checkbox) zadaj jedným názvom, napríklad RUBRIKA a každému prideľ svoje ID číslo. Po odoslaní formulára to budeš mať veľmi jednoduché, pretože jednoducho dáš vložiť celý STRING odoslanej položky RUBRIKY do DB - v ASP SQL_EXECUTE .... Reqeust.QueryString("RUBRIKA")....
Výhody :
rýchlosť, načítaš vlastne len autora a jeho rubriky, nemusíš otvárať zase RECORDSET.
Mala by asi pribudnúť ďalšia tabuľka, ktorá by obsahovala väzbu medzi autormi a rubrikami - AUTOR_RUBRIKA (id_autora, id_rubriky).
Potom môžeš jednoducho zvoliť, k akým rubrikám má autor prístup:
Podobne môžeš zistiť aj to, akí autori majú prístup k danej rubrike.
Urobiť tabuľku AUTORI_RUBRIKY s týmito stĺpcami:
1. Autor
2. Rubrika
Každá povolená rubrika pre autora bude znamenať riadok v tabuľke, čiže:
Autor 4 môže ísť do rubrík 5, 6, 7, tak do tabuľky pridáš riadky:
Autor-4, Rubrika-5
Autor-4, Rubrika-6
Autor-4, Rubrika-7