Radušās problēmas ar čempionāta tabulas sakārtošanu pēc dažiem nosacījumiem.
sakartošanas secība:
0) punktu skaits - punkti (ok)
1) savstarpējo spēļu rezultātiem - vairāk punktu,
2) labākās vārtu starpības savstarpējās spēlēs,
3) lielākā gūto vārtu skaita savstarpējās spēlēs,
4) labākās vārtu starpības visās spēlēs - bilance (ok)
5) mazākās visu spēlētāju soda laiku summas. (ok)
Pieņemsim, ka šis ir sākotnējais sql:
"... ORDER BY punkti DESC, bilance DESC"
Ar 0) un 4) viss vienkārši. Biku čakarē viss pārējais - nav iespējams visu salikt vienā sql pieprasījumā (mysql btw).
Izdomāju citu veidu: Ieselektēju katras komandas visu spēlētāju soda minūšu summas, sametu masīvā:
$komandu_sodi[$komandas_id] = $sodu_summa;
Sakārtoju pēc mazākās summas. Izveidoju kārtošanas secību komandu soda minūtēm -
$order_sodi = implode(',', array_keys($komandu_sodi));
Ielieku iekš sql pieprasījuma:
"... ORDER BY punkti DESC, bilance DESC, find_in_set(komandas.id, '$order_sodi') ASC"
Lab, tik tālu viss easy.
Ņemam nākamo nosacījumu: doma arī visu samest kkādā masīvā. Pagaidām tā:
masivs[majnieku komandas id][viesu komandas id] = visu savstarpeejo guuto punktu starpība
Nekas nenāk prātā, kā to visu pēctam izmantot, lai dabūtu iekš sql :) Ir kāda doma?