Autor Zpráva
Taps
Profil
Mám tento kod
$pocet1=mysql_result(mysql_query("Select count(id) FROM evidence where vlozil='$cislo'and kategorie='hokej'  and YEAR(datum) = '$rok'"),0);

$pocet2=mysql_result(mysql_query("Select count(id) FROM evidence where vlozil='$cislo'and kategorie='fotbal'  and YEAR(datum) = '$rok'"),0);

$pocet3=mysql_result(mysql_query("Select count(id) FROM evidence where vlozil='$cislo'and kategorie='basketbal'  and YEAR(datum) = '$rok'"),0);

$pocet4=mysql_result(mysql_query("Select count(id) FROM evidence where vlozil='$cislo'and kategorie='tenis'  and YEAR(datum) = '$rok'"),0);

$celkem_1 = mysql_result(MySQL_Query("SELECT SUM(poplatek) AS soucet FROM evidence where vlozil='$cislo' and kategorie='hokej'  and YEAR(datum) = '$rok' order by soucet"),0);
$celkem_2 = mysql_result(MySQL_Query("SELECT SUM(poplatek) AS soucet FROM evidence where vlozil='$cislo' and kategorie='fotbal'  and YEAR(datum) = '$rok' order by soucet"),0);

$celkem_3 = mysql_result(MySQL_Query("SELECT SUM(poplatek) AS soucet FROM evidence where vlozil='$cislo' and kategorie='basketbal' and YEAR(datum) = '$rok'  order by soucet"),0);
$celkem_4 = mysql_result(MySQL_Query("SELECT SUM(poplatek) AS soucet FROM evidence where vlozil='$cislo' and kategorie='tenis' and YEAR(datum) = '$rok'  order by soucet"),0);

Vypisuje jednotlivé kategorie a k tomu jednotlivé ceny a chtěl bych se zeptat jestli by tento zápis nešel nějak zjednodušit...aby provedení bylo co nejrychlejší a zároven co nejméně zatížilo databázi
Kajman_
Profil *
and YEAR(datum) = '$rok'

Tak na tohle se nedá použít index i když by na sloupci datum byl. Index asi pomůže i na slopci vlozil a kategorie.

select count(id), sum(poplatek), kategorie from evidence where vlozil='$cislo' and datum between '$rok-01-01' and '$rok-12-31' and kategorie in ('hokej','fotbal','basketbal','tenis') group by kategorie
Taps
Profil
Kajman_
Já mám ve databázi uložené datum ve formátu YYYY-MM-DD a tu proměnou rok volám pomocí funkce Date("Y")
$rok=Date("Y");.
Opravdu to tak nemůže být ? Zatím mě vše fungovalo tak jak má.
Kajman_
Profil *
Opravdu to tak nemůže být ? Zatím mě vše fungovalo tak jak má.

Může, ale myslel jsem, že se ptáte na optimalizaci.
Taps
Profil
Kajman_
Pokud jsem správně pohopil vaši ukázku tak ten select dotaz spočítal všechny kategorie dohromady, ale já bych potřeboval aby se mi to vypsalo nějak takto

název kategorie - počet - suma

všechno jednotlivě pod sebe. Jestli to nějak jde abych tě dotazů enbylo tolik
Kajman_
Profil *
Pochopil jste to špatně. Díky group by, to vypíše dle vašeho přání.
Taps
Profil
zkoušel jsem to takto
$rok=Date("Y");
include "config.php";
$sql=mysql_query("select count(id), sum(poplatek),vlozil,pracoviste, kategorie from evidence where vlozil='01' and pracoviste='TB' and YEAR(datum)='$rok' and kategorie in ('fotbal','hokej','tenis','basketbal') group by kategorie") or die (mysql_error());
 echo $sql;

Ale vypsalo mi to resource#id, poté jsem zkusil přidat mysql_result ale pak se mi zase ukázal jen počet. Mohl byste mi prosím poradit
Kajman_
Profil *
$sql=mysql_query("select count(id) pocet, sum(poplatek) suma,vlozil,pracoviste, kategorie from evidence where vlozil='01' and pracoviste='TB' and datum between '$rok-01-01' and '$rok-12-31' and kategorie in ('fotbal','hokej','tenis','basketbal') group by kategorie, vlozil, pracoviste") or die (mysql_error());
while($radek=mysql_fetch_assoc($sql)) print_r($radek);
Taps
Profil
Kajman_
Děkuji...člověk se celý život učí.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0