Diskuze: Proměnné pro všechny
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
No... ideš na to celkom zle. Za predpokladu, že som správne pochopil, tak ti ide o niečo ako o anketu. A na to ti žiadne sessions nepomôžu, pretože sessions sú pre každého užívateľa špecifické. To znamená, že ak by to šlo cez sessions, každý uživateľ by vedel len to, ako hlasoval on. Čiže ja zahlasujem za možnosť A, ale ty, na svojom PC, to neuvidíš. Iba ja. A ja zas neuvidím, čo si zahlasoval ty.
Čiže za predpokladu, že ide o klasickú anketu, nepomôže ti nijaká premenná. Musíš údaje z hlasovania jednotlivých ľudí ukladať do databázy (alebo do súboru, čo je obtiažnejšie a blbovzornejšie). Následne pri zobrazení stránky vytiahneš aktuálne data z databázy, ktoré sa budú zobrazovať všetkým užívateľom rovnako. Čiže ide ti o niečo také:
vote_id [INT] | user_id [INT] | vote_for [INT]
Vote_id sa ti bude automaticky vytvárať pri novom zázname (novom riadku),
user_id môžeš použiť (ale nemusíš), aby si odfiltroval opakované
hlasovanie -> tzn. že jeden človek nebude hlasovať sto razy, ale
budemôcť iba raz. Vote_for bude číslo od 1 do 4 (a=1, b=2, ...). Ale nemusí
byť user_id v DB, dá sa to aj inak (session, alebo lepšie cookies). V
podstate ti bude stačiť vote_id ako primary key a vote_for.
3. Po odoslaní formulára spustíš mechanizmus zápisu hlasovania do
databázy. Čiže INSERT INTO. Každé hlasovanie ti vloží nový riadok do
tabuľky.
4. Vytvoríš mechanizmus na výpis aktuálneho stavu hlasovania. Urobíš 4
SELECT COUNT("*") FROM tvojatabulka WHERE vote_for=a/b/c/d. To ti vráti každý
krát počet hlasovaní pre jednotlivé možnosti. Čiže výstup bude že a =
100 riadkov=hlasov, b = 101riadkov=hlasov,...
5. Potom to už iba zobrazíš v HTML
Je to kus krivý postup, určite by sa to dalo aj lepšie a jednoduchšie (rôzne for cykly a pod.), ale nakoľko si na to chcel ísť celkom zle (nesmejem sa, len poukazujem na skutočnosť), myslím, že si relatívne začiatočník a že takéto nasmerovanie by ti mohlo vcelku pomôcť. Ako som povedal, nemám čas ani energiu písať zložité MVC mechanizmy a chujoviny, z ktorých by si jednak nič nemal a druhak by ma stáli dva dni roboty. Dúfam, že som pomohol. Ak nie, tak proste len daj mínus
Ono by mozna stacilo napsat, ze vsechny data, ktere chce mit na webu perzistentne nekam proste musi ulozit ale dam ti plus, aby ses necitil spatne
Zobrazeno 5 zpráv z 5.