Autor Zpráva
DB_syn
Profil *
Ahoj,

vytvořil jsem kód viz níže. Nedaří se mi donutit databázi, aby řadila dle sloupce. Nejprve jsem si sečetl počet týmů, ale teď nevím jak to udělat, aby se řadily dle počtu vzestupně.

  $stav_vypis = mysqli_query($spojeni, "SELECT distinct tym FROM nazev_stroje WHERE akce = '155' AND rok = '$rok' AND bez_diakritiky = '$geet' ORDER BY typ DESC");
    
  while ($team = mysqli_fetch_array($stav_vypis))
{
  $team = $team['tym'];
  //Celkový počet týmů
  $stav_vypis_match = mysqli_query($spojeni, "SELECT (SUM(pocet_teamu)) FROM nazev_stroje WHERE akce = '155' AND tym = '$team' AND rok = '$rok' ORDER BY datum DESC");
  
  $vypis1000 = mysqli_fetch_array($stav_vypis_match, MYSQL_NUM);
  $cislo_celkoveho_teamu = array_sum($vypis1000);
  
 

  $tabulka_zapasu .= '<tr><td class="td_tab_zapas">' . $cislo_celkoveho_teamu . '</td></tr>';

}
 

Moc díky za pomoc...
Tori
Profil
A nešlo by to jedním dotazem?
mysqli_query($spojeni, "SELECT t1.tym, SUM(t2.pocet_teamu) 'celkem' 
FROM nazev_stroje t1
INNER JOIN nazev_stroje t2 USING(tym)
WHERE t1.akce = '155' AND t1.rok = '$rok' AND t1.bez_diakritiky = '$geet'
GROUP BY t1.tym
ORDER BY t1.typ DESC");
DB_syn
Profil *
Můžu se jen zeptat? Co je to t1 a t2?


Já to mám ještě těžší.

archa = 1
archa = 2
cs = 1
cs = 1

Pak musím sečíst archa a cs, pak je vypsat dle nejvyššího počtu.

Mám 10 skupin a každá skupina má několik čísel, které musím sečíst a podle sečtených čísel skupiny seřadit.
Tori
Profil
DB_syn:
Stejná tabulka je tam použitá dvakrát, takže musí mít podruhé jiný název - proto dva aliasy (t1, t2).

Oprava, není nutné spojení tabulek, mělo by fungovat i tohle.
mysqli_query($spojeni, "SELECT tym, SUM(pocet_teamu) 'celkem' 
FROM nazev_stroje
WHERE akce = '155' AND rok = '$rok' AND bez_diakritiky = '$geet'
GROUP BY tym
ORDER BY typ DESC");
DB_syn
Profil *
Ten poslední příklad funguje, jen se mi již nevypisuje součet čísel pod skupinou.
Tori
Profil
DB_syn:
archa = 2
"archa" je ve sloupečku tym a ta čísla jsou ze sloupečku pocet_teamu? Pokud jo, tak ten můj dotaz z toho udělá
archa | 3
cs | 2
Ale možná jsem špatně pochopila, o co se snažíte.
DB_syn
Profil *
Sloupec s názvem ARCHA, pocet_zapasu = 1
sloupec s názvem ARCHA, pocet_zapasu = 1
sloupec s názvem ARCHA, pocet_zapasu = 1

Sloupec s názvem CS, pocet_zapasu = 1
sloupec s názvem CS, pocet_zapasu = 1

Chtěl bych sečít názvy a seřadit podle celkového počtu.

Sečíst:
ARCHA = 3
CS = 2

A pak je vypsat od nejvyššího čísla k nejmenšímu:
ARCHA = 3
CS = 2


Každý kdo odehraje zápas, tak se mu vytvoří nový řádek s číslem 1
Pak je chci vypsat podle počtu odehraných zápasů.


Pořád mi to nejde...
Tori
Profil
DB_syn:
Teď mi teprve napadlo, jestli je vlastně vůbec nutné mít ty záznamy takhle po jednom řádku... tak se jen chci zeptat:

* Mohou existovat řádky, kde by hodnota v pocet_zapasu byla jiná než 1? Pokud ne, tak by šlo sloupec pocet_zapasu zcela vyhodit a místo SUM použít prostě COUNT(*).

* Potřebujete rozlišovat jednotlivé řádky, které v tomhle dotazu sčítáte? Přesněji řečeno: pokud mám skupinu řádků, které mají shodné ID akce, rok i shodný týmu, mohou se od sebe nějakou hodnotou (např. datum nebo bez_diakriky) lišit? Pokud ne, tak by šlo při vkládání dat jen zvyšovat hodnotu v pocet_zapasu, a nový řádek vkládat jen tehdy, pokud by neexistoval řádek se stejnou kombinací akce, roku a jména týmu.

Pokud se velmi pletu, tak se omlouvám; nerozumím úplně tomu, jaká data (a o čem) ukládáte.

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: