Autor | Zpráva | ||
---|---|---|---|
Feryy Profil * |
#1 · Zasláno: 16. 2. 2014, 18:43:50
Zdravím,
potřeboval bych trošku nakopnout. Mám naprogramovanou jednoduchou tipovačku, kde se tipují přesné výsledky (správný tip přesného výsledku +3 body, správný tip vítěze +1). Dá se zobrazit samozřejmě tipy daného uživatele, ale chtěl bych připravit stránku, která by vypsala tipy všech uživatelů. Tzn nějak takto: Výsledek Uživatel1 Uživatel2 Uživatel3 ČR - FIN 1:2 1:3 (+1) 1:2 (+3) 2:1 (+0) RUS - CAN 3:2 3:3 (0) 3:1 (+1) 3:2 (+3) Tabulka mám následující: tipy (`id`, `zapas_id`, `uzivatel_id`, `vysledek`, `tip`, `body`) uzivatele (id, prihlasovaci_jmeno) tymy (id, nazev) zapasy (`id`, `datum`, `turnaj_id`, `soutez_id`, `domaci_id`, `hoste_id`, `vysledek`, `tip`) Potřeboval bych nakopnout, jak udělat výpis do tabulky, viz výše. Díky moc za jakoukoliv pomoc |
||
peta Profil |
Chces SQL dotaz v tematu PHP? Spatne tema. A tvuj pokus byl...? Zadny.
-- vysledky SELECT CONCAT(b.nazev,' - ',c.nazev), a.vysledek FROM zapasy a LEFT JOIN tymy b ON b.tym_id=a.domaci_id LEFT JOIN tymy c ON c.tym_id=a.hoste_id -- uzivatel, tip, body SELECT c.prihlasovaci_jmeno, a.tip, a.body FROM tipy a LEFT JOIN zapasy b ON b.zapas_id=a.zapas_id LEFT JOIN uzivatele c ON c.uzivatel_id = a.uzivatel_id WHERE a.zapas_id=1 |
||
Feryy Profil * |
#3 · Zasláno: 18. 2. 2014, 10:40:35
Teď nevim zda jsem to dobře napsal, nebo jsi to špatně pochopil. Já si umim napsat dotaz jako je např. tenhle:
select t1.nazev domaci, t2.nazev hoste, z.vysledek, u.prihlasovaci_jmeno, t.vysledek from zapasy z left join tymy t1 on t1.id = z.domaci_id left join tymy t2 on t2.id = z.hoste_id left join tipy t on t.zapas_id = z.id left join uzivatele u on u.id = t.uzivatel_id Ten mi vypíše všechny zápasy a tipy jednotlivých uživatelů, ale jen formou seznamu. Já potřebuju vymyslet, jak udělat tabulku, viz výše. Takže trošku klídek, zase. Nikde nepíšu že chci hotový řešení, jen potřebuju nakopnout, protože mě nenapadá jak nejlépe to udělat. Navíc to tvoje řešení mi pomůže jak? Předpokládám že na tohle budu potřebovat operace v PHP, abych přišel na řešení. Díky za případnou pomoc. |
||
Kajman Profil |
#4 · Zasláno: 18. 2. 2014, 10:52:17
Feryy:
Data z dotazu si projděte a přeuložte do dvojrozměrného php pole. (Pro hodnoty druhého rozměru si můžete udělat pomocné pole, ať se sedí sloupce, pokud tam tip v daném řádku nebyl.) |
||
peta Profil |
Asi bych to delal podobne.
Vytahl bych si seznam vsech uzivatelu, kteri tipovali, seradil podle id_uzivatele (S1). Vytahl bych si seznam vsech tipu, seradil podle podle id_zapasu, id_uzivatele. Tim budu mit vse kolem jednoho zapasu pohromade. (S2) Pak bych si udelal z S1 pole $uziv[id] = array(); (P1) A pak uz jen prochazel S2, vybral vsechna data pro jeden zaznam, doplnil do kopie pole P1 (KP1). Pak udelal z KP1 html tr radek. Totez pro dalsi id zapasu. (nejsem si ted jisty, jestli jde udelat kopii pouhym $kp1 = $p1; nebo je nutne pouzit cyklus). Asi by to slo udelat i jednim SQL dotazem, ale prijde mi to zbytecne komplikovane na dotaz, proto jsem se ho ani nepokousel sestavit. |
||
Časová prodleva: 11 let
|
0