Autor | Zpráva | ||
---|---|---|---|
Stepanka Profil * |
#1 · Zasláno: 12. 1. 2009, 19:30:50
Ahoj,
mohl by mi někdo, prosím, poradit? Mám takovýto kód, který mi tahá údaje z databáze a pak je zobrazuje v tabulce: $result = mysql_query(" SELECT p.$text AS nazev_platby, count(o.id_objednavka) AS pocet_objednavek, sum(CEIL(o.celkova_cena)) AS celkova_cena, sum(o.celkem_bez_dph) as celkem_bez_dph, sum(o.celkem_poplatek) AS celkem_poplatek FROM ".TBL_PREFIX."objednavky o JOIN ".TBL_PREFIX."platby p ON o.id_platba=p.id_platba ".$sql_on." GROUP BY p.id_platba ") or die(err(1)); echo '<table class="hlavni" style="width:auto"> <tr><th rowspan="2">'.__PLATBA__.'</th><th colspan="2">'.__POCET_OBJEDNAVEK__.'</th><th colspan="2">'.__CELKEM_BEZ_DOPRAVY_A_DPH__.'</th><th colspan="2">'.__CELKEM_S_DOPRAVOU_A_DPH__.'</th></tr> <tr> <th class="center">'.__KS__.'</th><th class="center">%</th> <th class="center">'.__KS__.'</th><th class="center">%</th> <th class="center">'.__KS__.'</th><th class="center">%</th> </tr> </tr>'; while ($row = mysql_fetch_array($result)) { echo '<tr> <td>'.$row['nazev_platby'].'</td> <td class="right">'.$row['pocet_objednavek'].'</td> <td> * </td> <td class="right">'.cena($row['celkem_bez_dph'],true,false).'</td> <td> * </td> <td class="right">'.cena($row['celkova_cena'],true,false).'</td> <td> * </td> </tr>'; $celkem_objednavek=$celkem_objednavek+$row['pocet_objednavek']; $celkova_cena=$celkova_cena+$row['celkova_cena']; $celkem_bez_dph=$celkem_bez_dph+$row['celkem_bez_dph']+$poplatek_bez_dph; } echo '<tr><td><strong>'.__CELKEM__.':</strong></td> <td class="right"><strong>'.$celkem_objednavek.'</strong></td> <td></td> <td class="right"><strong>'.cena($celkem_bez_dph,true,false).'</strong></td> <td></td> <td class="right"><strong>'.cena(ceil($celkova_cena),true,false).'</strong></td> <td></td> </tr>'; echo '</table>'; A v těch buňkách, ve kterých jsou hvězdičky * bych potřebovala zobrazit vždy procenta z uvedených údajů. Pro lepší pochopení uvedu příklad, jak by to mělo vypadat: [url=http://obi22.ic.cz/pokus.php]http://obi22.ic.cz/pokus.php [/url] Zde by v prvním řádku měly být hodnoty 28,6%, 95,94%, 92,15%.. Vím samozřejmě, jak vypočítat procenta z celkové částky. Ale chybí mi právě ta celková částka. Jak by se z té databáze dala vytáhnout, abych ji mohla používat hned v prvním průchodu cyklem? Děkuju. |
||
SwimX Profil |
#2 · Zasláno: 12. 1. 2009, 19:46:13
$query = "select count(*) as pocet from `kniha`"; $result = mysql_query($query) or die("Dotaz nelze provést: " . mysql_error()); takov0ho n2co< samoy5ejm2 upraven0 pro tvuj p59pad.. |
||
SwimX Profil |
#3 · Zasláno: 12. 1. 2009, 19:48:46
nemůžu změnit svuj příspěvek?
>> něvo takověho? samozřejmě upravené pro tvuj případ.. |
||
Stepanka Profil * |
#4 · Zasláno: 12. 1. 2009, 19:52:43
SwimX
Díky za reakci, ale asi jsi nepochopil můj případ.. SELECT count tam už mám, ale celkový počet objednávek znám až na konci cyklu. Jenže já bych ho potřebovala znát už na začátku, ať z toho celkového počtu můžu počítat procenta.. Ale asi to vyřeším dotazem navíc.. |
||
Joker Profil |
#5 · Zasláno: 12. 1. 2009, 20:36:03
Stepanka
Buď dotaz navíc, nebo si data z té tabulky nejdřív uložit a až potom sestavit HTML kód... něco jako: $tabulka = array(); $i=0; while ($row = mysql_fetch_array($result)) { $tabulka[$i][0] = $row['nazev_platby']; $tabulka[$i][1] = $row['pocet_objednavek']; $tabulka[$i][3] = cena($row['celkem_bez_dph'],true,false); $tabulka[$i][5] = cena($row['celkova_cena'],true,false); $celkem_objednavek=$celkem_objednavek+$row['pocet_objednavek']; $celkova_cena=$celkova_cena+$row['celkova_cena']; $celkem_bez_dph=$celkem_bez_dph+$row['celkem_bez_dph']+$poplatek_bez_dph; $i++; } $html = ""; for($j=0; $j<$i; $j++){ $tabulka[$j][2] = ($tabulka[$j][1] / $celkem_objednavek) * 100; (...) $html .= '<tr><td>'.implode('</td><td>', $tabulka[j]).'</td></tr>'; Nějak takhle. |
||
SwimX Profil |
#6 · Zasláno: 12. 1. 2009, 20:50:03
Stepanka
pochopil sem: ale myslel sem jinak než sem psal: nejdřív udělat ten count, potom ten druhej s výpisen dšlat pole viz Joker mi příde horší z důvodu paměti |
||
Stepanka Profil * |
#7 · Zasláno: 12. 1. 2009, 20:52:10
Joker
Děkuju.. ale už jsem to vyřešila druhým dotazem. |
||
Joker Profil |
#8 · Zasláno: 12. 1. 2009, 20:55:30
SwimX
Víceméně souhlas, ale asi by záleželo i na konkrétní situaci. Ale ještě lepší podle mě je myšlenku toho pole rozšířit na ukládání celého webu a používat šablony :-) |
||
Kajman_ Profil * |
Také se dá použít
GROUP BY WITH ROLLUP |
||
Časová prodleva: 15 let
|
0