Autor | Zpráva | ||
---|---|---|---|
Foizo Profil |
#1 · Zasláno: 28. 3. 2014, 14:58:27
Zdrawim,
peru se s takový menším problémem. Chci od databáze výpis utkání a jejich výsledků v tomto formátu: 2014-02-27 Budvarka Neprakta Most mVH(4K) Foizo 2:0 Satanda Foizo 0:2 Satanda 2014-02-28 Pod Tribunou Most vVH(4K) Foizo 2:0 Satanda Foizo 0:2 Satanda - jedná se o utkání v karambolu ( za jméno každého hráče ještě příjodou další čísla, ale pro ukazku zobrazení to stačí) Jak vypadájí tabulky v databázi? Jaký dotaz jsem použil? SELECT `s`.`date`, `pl`.`placename`, `t`.`typezkr`, `p`.`nick`, `sc`.`point` FROM `game` AS `g` INNER JOIN `sesion` AS `s` ON `g`.`sesion_id` = `s`.`sesion_id` INNER JOIN `place` AS `pl` ON `s`.`place_id` = `pl`.`place_id` INNER JOIN `type` AS `t` ON `g`.`type_id` = `t`.`type_id` INNER JOIN `score` AS `sc` ON `g`.`game_id` = `sc`.`games_id` INNER JOIN `player` AS `p` ON `sc`.`player_id` = `p`.`player_id` Ve výstupní poli pak data vypadají takto Array ( [0] => Array ( [date] => 2014-03-27 [placename] => Budvarka Neprakta Most [typezkr] => mVH(4K) [nick] => Foizo [point] => 2 ) [1] => Array ( [date] => 2014-03-27 [placename] => Budvarka Neprakta Most [typezkr] => mVH(4K) [nick] => Satanda [point] => 0 ) [2] => Array ( [date] => 2014-03-27 [placename] => Budvarka Neprakta Most [typezkr] => mVH(4K) [nick] => Foizo [point] => 0 ) [3] => Array ( [date] => 2014-03-27 [placename] => Budvarka Neprakta Most [typezkr] => mVH(4K) [nick] => Satanda [point] => 2 ) [4] => Array ( [date] => 2014-04-28 [placename] => Pod Tribunou Most [typezkr] => vVH(4K) [nick] => Foizo [point] => 2 ) [5] => Array ( [date] => 2014-04-28 [placename] => Pod Tribunou Most [typezkr] => vVH(4K) [nick] => Satanda [point] => 0 ) [6] => Array ( [date] => 2014-04-28 [placename] => Pod Tribunou Most [typezkr] => vVH(4K) [nick] => Foizo [point] => 0 ) [7] => Array ( [date] => 2014-04-28 [placename] => Pod Tribunou Most [typezkr] => vVH(4K) [nick] => Satanda [point] => 2 ) ) Sice veškerá požadovaná data toto pole obsahuje, ale s následou úpravou na požadované zobrazení si nevim rady... |
||
Kajman Profil |
#2 · Zasláno: 28. 3. 2014, 15:28:24
Co přidat do tabulky game dva sloupečky - id domácího hráče a id hostující hráče? Pak by se daly ty výsledky lépe párovat a bylo by jasné, kdo má být na prvním a kdo na druhém místě.
Pro výpis datumů a soutěže jen když se to mění, mrkněte na Nadpis skupiny |
||
Časová prodleva: 3 dny
|
|||
Foizo Profil |
#3 · Zasláno: 31. 3. 2014, 09:36:04
tak se povedlo, doplnil jsem sloupečky do game a následující dotaz mi pak vyhodí přesně to co potřebuji... díky za pomoc.
Ještě otázka - není ten dotaz přehnanej? jsem začátečník, pokud jde napsat i v kratší verzi rád se přiučím... SELECT `s`.`date`, `pl`.`placename`, `t`.`typezkr`, `p1`.`nick` AS `player1`, `sc1`.`point` AS `score1`,`p2`.`nick` AS `player2`, `sc2`.`point` AS `score2` FROM `game` `g` INNER JOIN `sesion` AS `s` ON `g`.`sesion_id` = `s`.`sesion_id` INNER JOIN `place` AS `pl` ON `s`.`place_id` = `pl`.`place_id` INNER JOIN `type` AS `t` ON `g`.`type_id` = `t`.`type_id` INNER JOIN `player` AS `p1` ON `g`.`f_player_id` = `p1`.`player_id` INNER JOIN `score` AS `sc1` ON `g`.`game_id` = `sc1`.`games_id` INNER JOIN `player` AS `p2` ON `g`.`s_player_id` = `p2`.`player_id` INNER JOIN `score` AS `sc2` ON `g`.`game_id` = `sc2`.`games_id` WHERE `g`.`s_player_id` = `sc2`.`player_id` AND `g`.`f_player_id` = `sc1`.`player_id` Výstup Array ( [0] => Array ( [date] => 2014-03-27 [placename] => Budvarka Neprakta Most [typezkr] => mVH(4K) [player1] => Foizo [score1] => 2 [player2] => Satanda [score2] => 0 ) [1] => Array ( [date] => 2014-03-27 [placename] => Budvarka Neprakta Most [typezkr] => mVH(4K) [player1] => Foizo [score1] => 0 [player2] => Satanda [score2] => 2 ) [2] => Array ( [date] => 2014-04-28 [placename] => Pod Tribunou Most [typezkr] => vVH(4K) [player1] => Foizo [score1] => 2 [player2] => Satanda [score2] => 0 ) [3] => Array ( [date] => 2014-04-28 [placename] => Pod Tribunou Most [typezkr] => vVH(4K) [player1] => Foizo [score1] => 0 [player2] => Satanda [score2] => 2 ) ) |
||
Kajman Profil |
#4 · Zasláno: 31. 3. 2014, 10:17:39
Místo jednoho velkého se dá dělat i po jednom dotaze do každé tabulky, ale je potřeba programovat více logiky v php. Záleží, jak se Vám s tím bude lépe pracovat.
http://php.vrana.cz/srovnani-dotazu-do-zavislych-tabulek.php Pokud je ten dotaz svižný a už to funguje, tak to s klidným svědomím nechte. Snad jen z where bych ty podmínky na provázání tabulek dal rovnou k příslušnému joinu a doplnil řazení, aby fungoval odkazovaný "Nadpis skupiny". SELECT `s`.`date`, `pl`.`placename`, `t`.`typezkr`, `p1`.`nick` AS `player1`, `sc1`.`point` AS `score1`, `p2`.`nick` AS `player2`, `sc2`.`point` AS `score2` FROM `game` `g` INNER JOIN `sesion` AS `s` ON `g`.`sesion_id` = `s`.`sesion_id` INNER JOIN `place` AS `pl` ON `s`.`place_id` = `pl`.`place_id` INNER JOIN `type` AS `t` ON `g`.`type_id` = `t`.`type_id` INNER JOIN `player` AS `p1` ON `g`.`f_player_id` = `p1`.`player_id` INNER JOIN `score` AS `sc1` ON `g`.`game_id` = `sc1`.`games_id` AND `g`.`f_player_id` = `sc1`.`player_id` INNER JOIN `player` AS `p2` ON `g`.`s_player_id` = `p2`.`player_id` INNER JOIN `score` AS `sc2` ON `g`.`game_id` = `sc2`.`games_id` AND `g`.`s_player_id` = `sc2`.`player_id` ORDER BY `s`.`date`, `pl`.`placename`, `t`.`typezkr` |
||
Foizo Profil |
#5 · Zasláno: 31. 3. 2014, 10:32:43
jasně... díky moc
|
||
Časová prodleva: 10 let
|
0