Snazil jsem se ti to vysvetlit co nejlip jsem umel. Muzu to zkusit jeste jednou, ale musis napsat, co presne nechapes. Ocisluju to. Promin, ale nemam chut se vyptavat, ktera konkretni cast ti neni jasna dalsim prispevkem, kdyz jsi to mohl napsat uz hned.
Navody, jak se pracuje s phpmyadminem je mozne vygooglovat. Bohuzel se verze od verze uplne meni, ani ja nemam stejnou verzi, jako ty. Kdyz bych ti tam rekl, ze mam na obrazovce to a to menu, tak ty tam treba nektere polozky nemas nebo jsou skryte. Coz se pak strasne neprijemne hleda. Cili, lepsi podle nejakeho navodu si s tim chvilku sam hrat....
1)
tab_uziv (id_uziv, jmeno, prijmeni dalsi sloupce)
1, ondrej, sykora, ...
2, jaroslav, kaval, ...
Vytvor si tabulku tab_uziv. Zadej tam sloupce id_uziv, jmeno, prijmeni. Id_uziv nastav jako autoincrement a index (klic).
Vloz tam data pro dva uzivatele: ondrej sykora a jaroslav kaval. (predpokladam, ze tyto operace pres phpmyadmin zvladas)
2)
tab_bonus (id_bonus, nazev, delka, dalsi sloupce)
1, level 4, mesic ...
2, level 2, rok ...
3, level 1, 0 ...
Vytvor tabulku tab_bonus. Sloupce id_bonus (autoincrement + index), nazev, delka. Vloz tam data, definice levelu (schvalne jsem jmena levelu dal kazdy jinak)
"level 4", 30
"level 2", 365
"level 1", 0
3)
tab_uziv_bonus (id_bonus, id_uzivatel, cas ukonceni bonusu)
1, 3,
1, 2
2, 3
2, 1
Vytvor tabulku tab_uziv_bonus (ktera bude propojovat uzivatele s bonusem) se sloupci id_bonus, id_uzivatel, cas (datetime). Zadny autoincrement, oba indexy. Napl daty:
1, 3, (datetime) -- prvni cislo je id z tabulky bonus; druhe cislo je id uzivatele; treti cislo je casove razitko: NOW()+365 dni, treba (to nevim, zda pujde pres phpmyadmina zadat) Na ukazku tam staci ale jakekoliv cislo
1, 2 ...
2, 3 ...
2, 1 ...
Jak to funguje? Mas tabulku uzivatele. Mas tabulku s nazvy bonusu a delkou jejich trvani. a mas tabulku, ktera prirazuje bonus nebo vice bonusu k uzivateli, ktera ma sloupec s koncem platnosti bonusu.
Pokud to vsechno v phpmyadminovi mas, tak kliknes na zalozku Sql a tam si postupne zadas ty 3 sql prikazy, co jsem napsal. Snad jsou ok. Melo by ti to pokazde vypsat jinou tabulku.
SELECT jmeno, prijmeni FROM tab_uziv WHERE id_uziv=2
vypise seznam uzivatelu
SELECT c.jmeno, c.prijmeni, b.nazev, a.cas
FROM tab_uziv_bonus a
LEFT JOIN tab_bonus b ON b.id_bonus = a.id_bonus
LEFT JOIN tab_uziv c ON c.id_uzivatel = a.id_uzivatel
vypise seznam uzivatelu + nazev bonusu (z tab2) + datum jeho ukonceni (z tab3)
SELECT c.jmeno, c.prijmeni, b.nazev, a.cas
FROM tab_uziv_bonus a
LEFT JOIN tab_bonus b ON b.id_bonus = a.id_bonus
LEFT JOIN tab_uziv c ON c.id_uzivatel = a.id_uzivatel
WHERE a.id_uziv=2
AND a.cas>NOW()
vypise uzivatele s id=2 a jeho bonusy, pokud je cas ukonceni vetsi nez NOW (now by melo byt aktualni datum)
Ty prikazy jsem nezkousel, ani tabulky nevytvarel, takze tam muze byt chyba. Ale verim, ze s googlem ji dokazes najit a opravit.