Autor Zpráva
Babemeta
Profil
Zdravím,

mám takový problém. Tentokrát ne, že by mi něco nefungovalo, ale nevím jak to udělat :-). Mám tabulku úkoly, kde mám data o všech možných úkolech pro hráče ve hře a je tam také udán minimální level, který musíte mít abyste úkol mohli dělat. A pak mám další tabulku, kde je vždy Jméno hráče a ID úkolu - pokaždé, když někdo splní nějaký úkol zapíše se to do této tabulky. No a teď bych potřeboval udělat výpis úkolů (z první tabulky), pro které má hráč dostatečný level a které zároveň ještě nesplnil. Přemýšlel jsem poslat nějaký dotaz na tabulku se splněnými a pomocí mysql_num_rows pokračovat, ale nevím jak to dotáhnout.

Díky
Keeehi
Profil
Mám k tomu 2 otázky
- Jeden hráč může každý úkol splnit pouze jednou? (v druhé tabulce bude vždy unikátní kombinace HRÁČ - ÚKOL)
- Má nějaká úroveň více úkolů, nebo je vždy u úrovně buď jeden, nebo žádný úkol?
Babemeta
Profil
-Ano, hráč plní každý úkol jen jednou, proto chci aby se mu už splněné nevypisovali.

-Hra se nedělí na úrovně, ale jestli myslíš, to, že každý úkol má jiný min. level tak ne. Na každém levelu má hráč k dispozici více úkolů (jednak ty pro jeho aktuální úroveň a jednak ty nesplněné z nižších levelů než je jeho aktuální).

Jinak myslím, že by nebyl velký problém to změnit, ale už tam mám nějaké zápisy k tomu.
Keeehi
Profil
Babemeta:
Ok, tu druhou otázku jsi asi nepochopil. Takže trochu jinak to samé:
- Když mám level 5 a pak se posunu na level 6, tak mi přibude maximálně 1 úkol? Nebo se mi tam mohou objevit třeba i 3 úkoly?

SELECT * FROM ukoly WHERE id_ukolu NOT IN(SELECT id_ukolu FROM splnene_ukoly WHERE hrac=id_hrace) AND
potrebny_level<=level_hrace;
sloupce se možná jmenují jinak, než u tebe, ale snad je to k pochopení.
Babemeta
Profil
Klidně i tři.
Babemeta
Profil
Díky moc. To jsem potřeboval! :-)

Edit: už jsem to zprovoznil :-). Ještě jednou díky
Keeehi
Profil
Babemeta:
Prosím, nevím, zda moje řešení je to nejlepší, snad není špatné. Kdyžtak můžeš počkat, zda se k tomu nevyjádří třeba Kajman.

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:

0