Zadejte hledaný výraz...

PHP a logaritmus

adminsao
verified
rating uzivatele
(1 hodnocení)
18. 2. 2009 21:43:53
Snažil jsem se něco vygooglit, ale o používání logaritmů v php jsem toho moc nenašel. I manuál je více než strohý k pololaikům. protose obracím se žádostí o radu ke zkušenějším.
Mám určitou část kódu s výběrem hodnot z databáze, vynásobení těchto hodnot "váhou" a sečtení. následně se podle těchto sečtených hodnot řádky seřadí DESC. Viz.:
No a já potřebuji u "t.image_hits" provést tu změnu, že před vynásobení "vahou" se provede: přičtení 1 a potom log10, u logaritmu stačí počítat na 3 desetinná místa, pokud by to šlo ošetřit tak, aby se zbytečně neprováděl výpočet na x desetinných míst a následně stejně nezaokrouhlovalo na tři desetinné místa. Nevím jestli je možné to přepsat do stavu:
???
Nejsem odborník ani na syntaxi a nevím si rady ani s tím zaokrouhlováním. Možná bych na to metodou pokus omyl přišel. Jen je otázka nakolik efektivní (zbytečně server nezatěžující) by to byl kód. Za případné rady a nápady předem děkuji.
18. 2. 2009 21:43:53
https://webtrh.cz/diskuse/php-a-logaritmus/#reply239031
Tohle nemůžeš dělat na straně PHP, ale databáze. Zkus tohle:
O výkon se opravdu neboj.
18. 2. 2009 22:54:20
https://webtrh.cz/diskuse/php-a-logaritmus/#reply239030
Kuba
verified
rating uzivatele
(1 hodnocení)
18. 2. 2009 23:06:02
Chape, jak jen si se k tomuhle relativně komplikovanému kódu dostal, přesto že nerozumíš syntaxi PHP ani natolik, aby si rozpoznal, že ti jde spíš o syntaxi MySQL :)
18. 2. 2009 23:06:02
https://webtrh.cz/diskuse/php-a-logaritmus/#reply239029
adminsao
verified
rating uzivatele
(1 hodnocení)
19. 2. 2009 00:18:35
mekishizufu
Díky. Vyzkouším. Těch řádků (výběr z DB, výpočet a řazení) bude při jednom každém výběru (vždy při volání stránky s toplistem) tak max cca 100 (jenom takový malý toplist pro úzkou skupinu fan stránek) tak jsem měl strach, aby se to neprojevilo na zatěžování serveru. Přece jenom výpočty logaritmů odhaduju jako jedny z těch složitějších.
Kuba
Je to součást módu k phpbb3. Jen bylo potřeba najít která část má za úkol tu činnost řazení a vytahování z DB a to dokážu. Já vím, že se ta kalkulace dělá přímo při vytahování z DB, ale jestli je to syntaxe pro php nebo mysql je pro mě opravdu španělská vesnice. To veřejně přiznávám.
19. 2. 2009 00:18:35
https://webtrh.cz/diskuse/php-a-logaritmus/#reply239028
adminsao
verified
rating uzivatele
(1 hodnocení)
23. 2. 2009 20:35:42
mekishizufu
Dík. Funguje. Reputace přidána. Já jsem holt strojař a i když se sám snažím i na poli menších úprav kódu ne vždy to vede k vysněnému cíli.
Teď se třeba trápím s tím, že místo file_get_contents (na hostingu zakázáno používání f_open nebo co to je přesně) potřebuju dostat do scriptu CURL a to co jsem zatím vygooglil a snažil se narvat do scriptu bohužel nefungovalo. Tipuju že mě tam nějak zlobí ten proměnný ocas url. Jinak by to asi nebyl problém.
Zapeklitý řádek kódu:
23. 2. 2009 20:35:42
https://webtrh.cz/diskuse/php-a-logaritmus/#reply239027
Hm, to bude spíš allow_url_fopen nastavený na FALSE. Jinak pomocí cURL pošleš požadavek následovně:
function getPicture($url) {
$curl = curl_init('http://open.thumbshots.org/image.aspx?url=' . urlencode($url)); // inicializujes cURL a predas mu URL
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // nastavis, aby se vysledek vracel jako string do promenny
curl_setopt($curl, CURLOPT_HEADER, 0); // hlavicky nepotrebujes
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30); // nastavis timeout, za jak dlouho vyprsi casovej limit spojeni
$result = curl_exec($curl); // provedes request
if (curl_errno($curl)) { // pokud nastala chyba
/*
* Kdyby si si chtel chyby logovat, tak v curl_error($curl) mas chybovou hlasku a
* v curl_errno($curl) kod chyby.
*/
curl_close($curl); // vymazes z pameti handle a prostredky
return FALSE;
}
curl_close($curl); // vymazes z pameti handle a prostredky
return $result; // vratis vysledek
}
$url = '...';
if(($data = getPicture($url)) && $data == $cache_data) {
// ==
} else {
// !=
}
23. 2. 2009 22:09:45
https://webtrh.cz/diskuse/php-a-logaritmus/#reply239026
adminsao
verified
rating uzivatele
(1 hodnocení)
23. 2. 2009 22:43:17
Dík. Zkoušel jsem tím nahradit to co bylo v té závorce if( ...... ) a pořád mi to hází HTTP 500 - Vnitřní chyba serveru (tak jako při mých předchozích pokusech). Snad mě ještě napadá že přes ujištění ze strany hostingu že CURL je bez problémů funkční tak to nemusí být pravda.
23. 2. 2009 22:43:17
https://webtrh.cz/diskuse/php-a-logaritmus/#reply239025
Zajímavý... Koukal si se do logu serveru?
23. 2. 2009 22:57:29
https://webtrh.cz/diskuse/php-a-logaritmus/#reply239024
adminsao
verified
rating uzivatele
(1 hodnocení)
23. 2. 2009 23:32:36
Nedíval. Myslím, že ani nevím jak a jestli mám vůbec přístup k logům serveru.
23. 2. 2009 23:32:36
https://webtrh.cz/diskuse/php-a-logaritmus/#reply239023
hm
verified
rating uzivatele
(20 hodnocení)
25. 2. 2009 20:04:23
zrejme mas v php vyple zobrazovani chyb (hodnota display_errors), cimz pri jakekoliv chybe v php haze apache chybu petistovku... Doporucuji nandat do .htaccess tento radek:
php_flag display_errors On
a pro jistotu jeste prihodit
php_value error_reporting 6135
to znamena ze se zapne zobrazovani chyb a potlaci zobrazovani notice (to je jakesi doporuceni, ale ne chyba)
pokud tvuj hosting tyto nastaveni v htaccess neblokuje, mel bys dostat misto chyby petistovky stranku na ktere bude vypsano jaka ze to chyba nastala a na jakem radku zhruba nastala (bude se ti lepe dohledavat)
25. 2. 2009 20:04:23
https://webtrh.cz/diskuse/php-a-logaritmus/#reply239022
Jakub Stacho
verified
rating uzivatele
(20 hodnocení)
25. 2. 2009 20:20:11
Jdu na to sice z druhé strany, ale nebylo by jednodušší vybodnout se na stahování a zobrazovat přímo obrázek z Thumbshots.org?
Přijde mi to lepší i z důvodu budoucího update screenshotu...
25. 2. 2009 20:20:11
https://webtrh.cz/diskuse/php-a-logaritmus/#reply239021
adminsao
verified
rating uzivatele
(1 hodnocení)
26. 2. 2009 23:11:06
Všem díky. Už jsem ve spolupráci s hostingem rozchodil i ten původní kód s file_get_contents
to tracy
Ono je to tak, že v administraci si zadáš počet dnů na aktualizace a potom se to spouští cronem. Takže se zbytečně nezatěžuje thumshots.org a zobrazování není závislé na aktuální zátěži (resp. odezvě) případně aktuální dostupnosti/výpadku thumbshots.org
26. 2. 2009 23:11:06
https://webtrh.cz/diskuse/php-a-logaritmus/#reply239020
Pro odpověď se přihlašte.
Přihlásit