Autor Zpráva
Kouda
Profil *
Zdravim. Mam problém s tabulkou, obsahuje 10 sloupců, ve všech jsou čísla. Chtel bych ty sloupce zobrazit a na konec zobrazit součet každého sloupce. Sloupce se zobrazí, ale součet ne. Díky.
llook
Profil
Snad by mohlo fungovat něco takového:
$result = mysql_query('SELECT s1, s2, s3, (s1+s2+s3) AS soucet FROM tabulka;');
Kouda
Profil *
Díky. Tohle sečte hodnoty v s1 - s3, ale ne každý sloupec zvlášť.
Zkoušel jsem:
$sql = 'SELECT SUM(celkem) FROM tabulka ';
ale také se součet nezobrazí, ani když za SELECT přidam *, nebo název sloupce.
Hugo
Profil
Tak to secti pomoci php.
Kouda
Profil *
Hezký, ale jak???
Hugo
Profil
Nacti radky do pole a pomoci array_sum($array_col1) udelej soucet pro kazdy sloupec
Honza Hučín
Profil
Řešením je sjednocovací dotaz:
SELECT s1, s2, s3 FROM tabulka
UNION
SELECT sum(s1), sum(s2), sum(s3) FROM tabulka;
Kouda
Profil *
Tak nic. Zadal jsem
$sql = 'SELECT s1,s2,s3 FROM tabulka UNION SELECT SUM(s1),SUM(s2) , SUM(s3) FROM tabulka';
a ani nenačte data z tabulky. Nechybí tam něco?
Honza Hučín
Profil
A máš správně název té tabulky? ;-) Místo tabulka tam musí být skutečný název použité tabulky. Mně to funguje.
Kouda
Profil *
Název souhlasí, pod tím řádkem mam dál už jenom kontrolu.
$id_vysledku = mysql_query($sql,$id_spojeni);
if (!$id_vysledku)
die('Nepodařilo se nám načíst řádky z databáze.');
Zkusim celou databázi znovu, aspoň si to osvěžim.
Leo
Profil
"a ani nenačte data z tabulky. Nechybí tam něco?"

A jakou to hlasi mysql chybu, pripadne jakou mate verzi MySQL? Leo
magnum
Profil *
preco to komplikujete
$result = mysql_query('SELECT s1, s2, s3, SUM(s1) AS soucet1, SUM(s2) AS soucet2, SUM(s3) AS soucet3 FROM tabulka');

a nezabudni zrusit tu bodkociarku zo selectu v php sa nedava !


... teraz sa na to divam ... ak to takto nepojde tak to rozhod do dvoch selectov a hotovo ... v jednom nechaj s1,s2,s3 a do druheho daj tie SUM(s1)...
Honza Hučín
Profil
magnum
Obávám se, že to takto skutečně nepůjde.
Kouda
Tak zkus každý select odděleně. UNION by to měl spolehlivě spojit, pokud je stejný počet sloupců.
Leo
Profil
Mam pocit, ze UNION nefunguje v trojkovych verzich MySQL, Leo
Anonymní
Profil *
Řešením je sjednocovací dotaz:
SELECT s1, s2, s3 FROM tabulka
UNION
SELECT sum(s1), sum(s2), sum(s3) FROM tabulka;


Jeste bych se zeptal, co mam delat pokud potrebuju vybrat jen nektere radky?:

$vysledek = ('SELECT * FROM tabulka WHERE fmonth=$montselect AND fyear=$yearselect UNION SELECT SUM(platby) FROM tabulka WHERE fmonth=$montselect AND fyear=$yearselect');

takhle to nefunguje :o( selecty jsou dobre.
Berkoff
Profil
Omlouvam se za Anonymni prispevek
Honza Hučín
Profil
Co znamená, že nefunguje? Dává nesmyslný výsledek nebo hlásí chybu?

Podle mě musí mít oba dotazy, které chceš sjednotit, stejné vypisované sloupce. Takže zkus místo hvězdičky dát platby.
Berkoff
Profil
mam tabulku, v ni 4 sloupce, prvni je id-index, druhy rok, treti mesic, ctvrty platba, a potrebuju scitat platby za aktualni mesic, a aktualni rok.

rok a mesic definuji:

$selecttime=Time();
$montselect=Date("m", $selecttime);
$yearselect=Date("Y", $selecttime);

pak v pohode vyctu seznam ze sloupecku platby

$vysledek = mysql_query("SELECT * FROM tabulka WHERE fmonth=$montselect AND fyear=$yearselect order by fid");
while ($zaznam = mysql_fetch_array($vysledek) ):

ale nakonec nejsem schopen to cele z platby secist :o(
Berkoff
Profil
Takže zkus místo hvězdičky dát platby.

jenze pak to nebude vybirat jen ty radky, ktere odpovidaji WHERE, nebo se pletu?
Honza Hučín
Profil
Hvězdička znamená "vyber všechny sloupečky" a ve tvém případě je SELECT * totéž jako SELECT id, rok, mesic, platby. Hvězdička na výběr pomocí WHERE nemá vliv.
Berkoff
Profil
Nevim no, asi sem lama, pac:

$vysledek = ("SELECT SUM(platby) AS soucet FROM fakturace");
echo $soucet;

neukaze nic, cisto a bilo
Hugo
Profil
Berkoff


Zkus toto:

$vysledek = ("SELECT SUM(platby) AS soucet FROM fakturace");
$vysledek2 = MySQL_Fetch_Assoc ($vysledek);
echo $vysledek2['soucet'];
Berkoff
Profil
HUGO:

hlasi to chybu na radku $vysledek2 = MySQL_Fetch_Assoc ($vysledek);

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /mnt/win_d/globalftp/www/admins/price.php on line 26
Berkoff
Profil
Cely skriptik:

zakomentovane radky v poradku funguji. sloupce jsou jako INT, tabulka MyISAM

<?
require "databaze.php"; //pripojeni k db
//$selecttime=Time();
//$montselect=Date("m", $selecttime);
//$yearselect=Date("Y", $selecttime);
//$vysledek = mysql_query("SELECT * FROM fakturace WHERE fmonth=$montselect AND fyear=$yearselect order by fid");
//while ($zaznam = mysql_fetch_array($vysledek) ):
//echo $zaznam["user"];
//echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
//echo $zaznam["castka"];
//echo " ";
//echo $zaznam["zaplaceno"];
//echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
//echo "<hr>";
//endwhile;


$vysledek = ("SELECT SUM(castka) AS soucet FROM fakturace");
$vysledek2 = MySQL_Fetch_Assoc ($vysledek);
echo $vysledek2['soucet'];
mysql_Close();

?>
Hugo
Profil
Tak zkus toto:
$vysledek = ("SELECT SUM(castka) AS soucet FROM fakturace");
print mysql_error();
$vysledek2 = MySQL_Fetch_Assoc ($vysledek);
echo $vysledek2['soucet'];
myql_Close();

A uvidis co to vypise
Berkoff
Profil
to samy, na stejnym radku ..:o((

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /mnt/win_d/globalftp/www/admins/price.php on line 26
Hugo
Profil
Uz vidim chybu

$vysledek = MySQL_Query ("SELECT SUM(castka) AS soucet FROM fakturace");
print mysql_error();
$vysledek2 = MySQL_Fetch_Assoc ($vysledek);
echo $vysledek2['soucet'];
myql_Close();
Berkoff
Profil
Sem ***** ....:o)
Berkoff
Profil
lidicky moc dik, uz to funguje, zanechal jsem tam:

$vysledek = MySQL_Query ("SELECT SUM(castka) AS soucet FROM fakturace");

za to pridal:

WHERE fmonth=$montselect AND fyear=$yearselect

a pocita to jen ty radky co chci, myslim ...:o)
Toto téma je uzamčeno. Odpověď nelze zaslat.