Neumím dotaz do databáze MySQL
Ahoj,
potřeboval bych pomoc s dotazem/výpisem.
V databázi je tabulka, která má sloupce kraj, cs, era, kb, ge, ra, uc. Jde o hodnocení bankovních poboček z pohledu osob se sluchovým postižením. Hodnotilo se v každém kraji 6 bank.
Rozepsat to po jednotlivých krajích snad zvládnu, ale neumím udělat "vše". Známkuje se jako ve škole a chtěl bych tabulku, kde by byl průměr známek ze všech krajů. Zatím jsem sesmolil
<!--vse-->
<table border="2" cellpadding="6" cellspacing="0" frame="vsides" rules="rows" style="border: 2px solid maroon">
<?php
$vysledekvse = mysql_query(
"SELECT * FROM banky_bezbarierovost
);
//) or die(mysql_error());
/* Konec přímé práce s databází. */
?>
<br><br>
<tr>
<td><strong>Česká spořitelna a. s.</strong></td>
<td style="text-align: center"><?php echo $zaznam["cs"]; ?></td>
</tr>
</table>
<?php endwhile ?>
<!--/vse-->
Neumím to jednak nijak sečíst a vydělit 14 (14 krajů), druhak mi to vypisuje chybu špatná syntaxe i u tohoto obyč. výpisu (<?php echo $zaznam["cs"]; ?>) s jedním záznamem v tabulce.
Takže jsem něčeho dosáhl. Žádné while, ale nadefinovat proměnnou. Jen nevím, proč je všude celé číslo, když to mám na jedno desetinné. Ale ono už je celé číslo v tom výsledku s nulami. Přijde mi to, že už je výsledek zaokrouhlen, jelikož CS má součet u čtyř řádků 9 a to by mělo být 2,2 a je tam 2.
dole vypis.php
ten round by som nedaval do PHP, ale do SQL:
inak co sa ma dosiahnut tymi SUM(cs), SUM(era)? Pretoze to len scita vsetky znamky dokopy. Ak mas 3 riadky s hodnotami 3, 5, 1 tak vysledok bude 9. Predpokladam, ze tam malo ist COUNT - pocet riadkov/znamok.
Jo, mám to jak jsem chtěl. Moc ti děkuji. Že to nepočítá na jedno desetinné místo ani když to je v selectu rozdejchám.
V noci mě napadlo, udělat si proměnné, vydělit součet ve sloupci počtem řádků v tabulce mysql a ve výpisu dávat echo s výsledky (ale nějaké složité).
Jaké datové typy mají dané údaje?
mysql
Podle mě by to měl být typ "4.3. Čísla s pohyblivou desetinou čárkou", například "FLOAT".
Podle mě když jsou v celočíselném tvaru a následně je s nimi provedena nějaká matematická operace, tak výsledek může být zase ve stejném tvaru (celočíselném).
ja som to skusal a dal som AVG funkciu na pole typu INT a z cisel 2 a 3 mi vyplulo 2.500 takze je to ok.
Inak datovemu typu float by som sa radsej v databazach vyhol. Namiesto toho radsej DECIMAL.
To jsem z toho jelen. Já dal všem INT a nic. Furt celá čísla.
a ten round robis priamo v tom SQL prikaze ako som to napisal? ak ano tak je to divne ...
Ak tak skus urobit tie polia z INT na DECIMAL(2,1). Ako som pisal, zmenilo by to typ pola na take, kde pojde vlozit len cisla od 0.0 do 9.9
Teď dám obrázky, aby byla změna
Záhada. Koukám, že jsou i blbě. Např Ge Money je průměr 3,7, ale na výstupu je 2.0
ok, a ked len cisto v MySQL spustis ten SELECT, ktory je v PHP, tak ake hodnoty to vyhodi?
Ak to vyhodi spravne, tak bude chyba niekde v PHP.
Select přímo v phpmyadmin vyhodí tohle
Koukám, že to snad ani nesčítá, ale vyhazuje pro každý kraj zvlášť. Očekával jsem, že vypadne 6 čísel pro sum a 6 pro průměr.
Export té tabulky, kdyby se tím někdo chtěl zabývat
ach jaj my sme ale krepi
no necudo, ze to dava cele cisla, ked to grupujeme za kraj a ty mas v kazdom kraji len jeden riadok. Takze to urobi priemer vzdy za jeden kraj.
To, ze je celkovy priemer za CS 2,25 je sice pekne, ale toto dostaneme len ak spravime priemer za vsetky kraje (2+2+2+3)/4. My ale robime priemer pre kazdy kraj zvlast. Cize musel by si mat viacero riadkov pre Prahu, viacero pre Stredocesky kraj etc.
Takze asi bude treba urobit select:
Jo, z tohoto už lezou průměry jak jsem to původně chtěl.
Děkuji ti za pomoc, já bych se s tím mořil měsíc. Značím za vyřešené.
Až někdo nude chtít průměry ze sloupců, b udeme ho sem odkazovat. Konečný select + to další je takto
vypis.php