Autor Zpráva
Pavel Prochazka.zde.cz
Profil *
Zdravim,
nejak se potikam s vypoctem delky sloupe pro anketu.....
znam tyto vstupni parametry....
Delka tabulky kde se bude sloupec vypisovat, ten jsem zredukoval na 75%
Takze maximalni sloupec bude mejt delku maximalne 75% tabulky.
Ceklovy pocet hlasu... To aby sel odvodit pozadovany sloupec
a ke kazdemu radku pocet hlasu....
Tak, redukce sloupce:
$nKoeficient = $sirka/75;
vypocet jednoho procenta:
$k_OnePercent = 100 / $n_PocetOdpovedi;
vypocet delky sloupce:
round($k_OnePercent * $ns_pole[$a]['pocet_odpovedi'], 1);
ale zatim nedokazu vymislet jak tento vypocet jeste zohledni delku tabulky dne se bude sloupec tisknou....
pomuze nekdo?
Jen me napada ze se to musi resit pomoci prime umery, asi....
YoSarin
Profil
No, jestli to dobře chápu, tak když se šířka udává v procentech, tak ta se berou z nadřazeného prvku (? IMHO) čiliže šířka (délka) sloupce bude:
$delka = (($pocetHlasu / $maxPocetHlasu) * 75)."%";
Kde $pocetHlasu je počet hlasů u aktuální odpovědi a $maxPocetHlasu je počet hlasů u nejčastěji volené odpovědi.
DJ Miky
Profil
Osobně bych to ještě zaokrouhlil na celá čísla:

$sirka=ceil(($pocetHlasu / $celkemHlasu) * 75).'%';
Pavel Prochazka.zde.cz
Profil *
YoSarin vsechno je v jedne funkci.... Z databaze si vyberu pozadovane parametry.
Promenna: $n_PocetOdpovedi je soucet vsech hlasu v jedne ankete, to beru jako 100%.
Tak jak to mam me funguje ok ale nemam tam zohlednenou sirku tabulky a obcas se stava ze tabulka je sirsi nez je potreba...
Konkretne: mam sirku nastavenou na 130 bodu, tuto hodnotu lze kdykoliv zmenit pri editaci ankety. 75% delky tabulky jsem dal proto ze mam graficky sloupec a na nim jeste nasleduje ciselne vyjadreni.... A stava se ze tabulka prekroci tech 130bodu, protoze graficky ukazatel je delsi..... Nevim jak to pomerove vsechno zkratit, tak aby v kodu nebyli zadne konstanty a aby pri navrhu ankety (v administracni casti), mohl zvolit pozadovanou sirku ankety. Proto nechci vsechno nejak spocitat a delit to nejakema konstantama....Ale chci ty konstanty pocitat v kodu ale nenapada me jak.....

Ja mam puvodne zaokrouhlovani na jedno desitine cislo, je to lepsi nez na cela. Vypadato prirozeneji....Ale to je vec nazoru...
YoSarin
Profil
A ty chceš aby těch 75% šířky tabulky odpovídalo 100%?
Pavel Prochazka.zde.cz
Profil *
YoSarinnenenene,
mam tabulku 130 bodu, to je 100%. A chci ten graficky sloupecek zredukovat na 75% sirky tabulky, tedy na 96 bodu.
Ale poroz, tem nuj vypocet je nejak divny, jak uz jsem psal, nekdy se stava ze je delsi nez 130 bodu a tabulku neprijemne zvetsi...
YoSarin
Profil
Takže jinými slovy - proužek může zabírat max 75% tabulky, přičemž 75% tabulky bude odpovídat 100% hlasů, nebo počtu nejčastějších odpovědí?
Já vycházím z toho, že platí to druhé a v tom případě by mělo fungovat to co jsem psal prve (plus ještě obohacené o to zaokrouhlování)
Pavel Prochazka.zde.cz
Profil *
takze asi takto:
$nKoeficient = 100/$sirka; //jedno procento sirky tabulky....
$k_OnePercent = 100 / $n_PocetOdpovedi; //velikost jednoho procenta ale neni zohlednena vuci tabulky

Tak tedka me jde jak to udelat abych nejakym pomerem zajistil konstantu: $k_OnePercent vuci jednoho procenta sire tabulky,
tim zajistim se i kdyz bude hlasu milion :), tak me nikdy neprekroci predem danou celkovou sirku tabulky.....
Pavel Prochazka.zde.cz
Profil *
YoSarin nevim nevim, nikde tam nevidim zohledneni celkove tabulky...jen je tam cislo 75, ale to neni vypovidajici o celove sire tabulky....Jeste je tam potreba zakomponovat promennou $sirka coz je celkova sire tabulky(v mem konkretnim pripade je to 130 bodu).
YoSarin
Profil
Pavel Prochazka.zde.cz
NO, já si nejsem jist, ale když v CSS nastavíš width: XY%;, tak to bere XY% ze šířky nadřazeného prvku, ne?
DJ Miky
Profil
Když to tedy chceš maximálně 96 pixelů, tak to stačí nastavit v pixelech a ne v procentech...

$sirka=ceil(($pocetHlasu / $celkemHlasu) * 96).'px';
Pavel Prochazka.zde.cz
Profil *
YoSarin mam to udelane takto:
echo '<TABLE class=table_anketa width="' . $sirka . '" cellSpacing=0 cellPadding=0 border=0>'." ";
a fakato perfektne... nebo si to pouze mislim, pac podtou anketou mam jednu tabulku ktera ma presne 130 bodu a diky tomu jsem na to prisel ze moje anketa se rozjizdi....
DJ Miky
Profil
Nesmíš asi přiřazovat šířku jednoho sloupce šířce tabulky.
Pavel Prochazka.zde.cz
Profil *
vsem moooc diky, uz to faka....
udelal jsem to takto:

$nDelka_Sloupce=ceil(($ns_pole[$a]['pocet_odpovedi'] / $n_PocetOdpovedi) * (($sirka/100)*60)).'px';
nakonec jsem musel sirku sloupce zredukovat na 60 cehosi, pac podle vysledku na obrazovce to neni ani nahodou 60%, nevim co to je ale funguje to.

Jeste me zajima zda ma PHP nejakou fce kde zadam jako vstup text a dostanu delku textu v bodech nebo nejakych jednotkach co si zvolim..... To abych zabespecil aby se ta hodnota 60 jeste nejak redukovala podle nejdelsiho textu co se bude vedle sloupce nacazet....
YoSarin
Profil
Pavel Prochazka.zde.cz
Těžko, páč velikost textu závisí na klientovi, ne na serveru. :)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0