Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 24 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok NapísalOffline : 13.07.2008 22:35

Aky vzorec by ste navrhli pre najcitanejsi/najziadanejsi clanok?
(clanok, ktory ma najvacsiu frekvenciu citania)

mam v DB datum pridania a pocet precitani..

a ked chcem zistit najcitanejsi/najziadanejsi clanok, je nefer dat ten, ktory ma najviac citani, pretoze ak je dlhsie na stranke, je jasne, ze ma viac precitani...

treba to nejak spravit s tym, ze vyratat frekvenciu, cize za to casove obdobie, ako casto bol citany..

napadlo ma, ci to nespravit tak, ze vyratat, kolko krat bol v priemere citany za 1 den..

LENZE ! Ja debil do DB neukladam timestamp, ale datum do varchar v tvare:
DEN.MESIAC.ROK_medzera_HODINA:MINUTA

ako z toho neco rozumne dostat?? nejak ma nic dobre nenapada...

staci napad, netreba presny kod.. dik







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Čestný člen
Čestný člen
Najziadanejsi clanok - vzorec

Registrovaný: 17.10.06
Prihlásený: 08.01.11
Príspevky: 1752
Témy: 17
Príspevok NapísalOffline : 13.07.2008 22:53

si ten datum nejakou funkciou preformatuj na timestamp







_________________
A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table.
Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 22.11.07
Prihlásený: 26.02.10
Príspevky: 253
Témy: 1
Bydlisko: 127.0.0.1
Príspevok NapísalOffline : 13.07.2008 23:21

jednoducho staci zahodit minuty a hodiny a prepocitat si DEN.MESIAC.ROK na dni. vydelit a spravit priemer ze jeden den a vybrat pocet priadni v priemere za jeden den. teoreticky by to mohlo trvat strasne dlho kym by sa to vsetko vykonalo a generovanie stranky by mohlo trvat dlhsie. preto by som navrhol napriklad kazdy den (menej ako den je urcite zbytocne) o 00:00 spustit script cronom ktory ti to vytiahne a hodi do cache z ktoreho budes potom len vyberat ten jeden udaj.







_________________
PODPIS BOL ZMAZANY Z DOVODU NERESPEKTOVANIA PRAVIDIEL FORA!!!
Je povolených max. 5 riadkov s veľkosťou písma 9 (rozlíšenie 1280x1024px).
Sprava pre vedenie fora: ake nerespektovanie pravidiel. ved som mal v podpise citaciu na 2 riadky omg? lol? no a este jabber ale to neni moja chyba ze tu nemate input aj na jabber...
Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 13.07.2008 23:44

asi jo no.... CRONom som este nerobil, ale asi je najvyssi cas.... ale ako kukam popis na websupporte, je to len jednoduchy php4 script...

taka otazka, do akeho cache ukladat?? co keby som to pomocou CRONu ukladal do jednej tabulky?? a z nej tahal?? bol by tam len jeden riadok v nej, a ten riadok by sa updatavoval, pisal by som don len IDcka clankov oddelene ciarkov a pomocou explode rozdeloval.... nebolo by to tak lepsie?







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 22.11.07
Prihlásený: 26.02.10
Príspevky: 253
Témy: 1
Bydlisko: 127.0.0.1
Príspevok NapísalOffline : 13.07.2008 23:56

jasne sql je na to super. ja uz nativne vytvaram tabulku zvlast na veci ktore musim cacheovat.







_________________
PODPIS BOL ZMAZANY Z DOVODU NERESPEKTOVANIA PRAVIDIEL FORA!!!
Je povolených max. 5 riadkov s veľkosťou písma 9 (rozlíšenie 1280x1024px).
Sprava pre vedenie fora: ake nerespektovanie pravidiel. ved som mal v podpise citaciu na 2 riadky omg? lol? no a este jabber ale to neni moja chyba ze tu nemate input aj na jabber...
Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 06.03.08
Prihlásený: 01.10.12
Príspevky: 1732
Témy: 15
Bydlisko: triminka@sp...
Príspevok NapísalOffline : 13.07.2008 23:57

ja cron nepouzivam. niekam si ulozim hodnotu posledneho update/vykonania fcie atp. a potom sa dana akcia vykona az pri dalsom spusteni skriptu ked bude jej podmienka spustenia splnena (zvycajne if($lastupdate - date() >= 3600) :) )

//je to celkom uzitocne ked hrozi pokus o spustenie na woknach pripadne prenos zo servera na server o-)







_________________
Redeem the game of law! Despair the Billy, here are the morals! Come, relentless eraser rain, relentless eraser rain...
Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 22.11.07
Prihlásený: 26.02.10
Príspevky: 253
Témy: 1
Bydlisko: 127.0.0.1
Príspevok NapísalOffline : 14.07.2008 0:41

Triminka píše:
ja cron nepouzivam. niekam si ulozim hodnotu posledneho update/vykonania fcie atp. a potom sa dana akcia vykona az pri dalsom spusteni skriptu ked bude jej podmienka spustenia splnena (zvycajne if($lastupdate - date() >= 3600) :) )

//je to celkom uzitocne ked hrozi pokus o spustenie na woknach pripadne prenos zo servera na server o-)

ale predstav si ze sa ti to cachovanie ma robit napr pol hodinu. potom chudak ten co by prisiel a zacalo by sa to robit prave vtedy keby prisiel. a defaultna funkcnost scriptu je 30 sekund. takze aj to by si musel riesit. a keby sa user rozhodol ze nebude cakat kym mu to spracuje tak prestane odosielat http poziadavky na server a script sa ti nevykona. takze cron v tomto pripade vedie. :) btw. kto by mal server na windowse? :P a ked to chces robit u seba na lokalhoste tam nebudes toto cachovat pol hodiny. prenost zo serveru na server by nemal byt problem kedze vzdy iba cronu naservirujes script ktory sa ma vykonavat. v scripte nic nezmenis iba oznamis cronu ze ma nieco vtedy a vtedy robit takze ziadny problem. samozrejme ze ak vies zie script ktory sa ma vykonavat kazdy mesiac o 10 sekund dlhsie tak ho nebudes pchat do cronu. i ked si tym zaseries kod. ale ked mas vazne cachovat tak vela. tak cron nema konkurenciu







_________________
PODPIS BOL ZMAZANY Z DOVODU NERESPEKTOVANIA PRAVIDIEL FORA!!!
Je povolených max. 5 riadkov s veľkosťou písma 9 (rozlíšenie 1280x1024px).
Sprava pre vedenie fora: ake nerespektovanie pravidiel. ved som mal v podpise citaciu na 2 riadky omg? lol? no a este jabber ale to neni moja chyba ze tu nemate input aj na jabber...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 14.07.2008 10:01

no CRON sa mi nezdá unoverzálne riešenie ...
Kweby ti podľa Triminkového scriptu spúšťal AJAX, teda ponačítaní stránky by sa vykonal PHP-kód, dokonca myslím že sa dá aj bez spätnej reakcie ... tak v podstate by script zobral cez while a sql každý riadok z štatistiky - dátum pridania + počet zobrazení potom by to prepočítal ALE nevykonaval by hneď UPDATE ale pridával do hromadnej premenej a keď skončí while spust sa UPDATE ... takto ušetríš niekoľko sekúnd ... v podstatre uživateľ už na stránke byť nemusí, prípadne script by skončil do nejakých 7 sekúnd čo nie je dlho nato, že kým uživateľ na stránke niečo nájde uplynie mu tento čas ... dúfam že som to povedal stručne a jasne ak nie tak:
TRIMINKA - AJAX - PHP - Vybratie z databázy - prepočítanie - UPDATE

prepočítavanie by mohlo byť jednoduchý rating teda prerátal by si na rok - mesiac - dni na dni a odrátal prepočítaný dnešný dátum a následne by si vydelil počtom prečítania ... prakticky najmenšie číslo je najčítanejšie:
11 (dní) : 150 (prečítaní) = 0,073
20 (dní) : 300 (prečítaní) = 0,066
20 (dní) : 250 (prečítaní) = 0,08

teda rovnica sedí ...


Offline

Skúsený užívateľ
Skúsený užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 29.10.07
Prihlásený: 27.10.23
Príspevky: 1395
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 14.07.2008 10:20

stale je vyhodnejsi cron, nemusis s prepocitavanim cakat na navstevu usera







_________________
PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME
Mobil: Xiaomi POCO F2 PRO
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 14.07.2008 10:33

ano ale cron nie je podporovaný na všetkých servroch a niekde som čítal že nie je úplne bezpečný - neviem
navyše vždy to bude čítať užívateľ ... takže keď príde dozvie sa ...


Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 06.03.08
Prihlásený: 01.10.12
Príspevky: 1732
Témy: 15
Bydlisko: triminka@sp...
Príspevok NapísalOffline : 14.07.2008 10:47

vl4kn0: u mna doma, pripadne som mal jeden lamersky hosting na pseudolegalnom Wine 2008 xD Kazdopadne to co si napisal nieje pravda (1. cast) :)

Tominator: zhruba ano len AJAX nepouzivam.







_________________
Redeem the game of law! Despair the Billy, here are the morals! Come, relentless eraser rain, relentless eraser rain...
Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 14.07.2008 12:01

no mne sa ten CRON zda ako super riesenie, neviem co tam pletiete o bezpecnosti, ved ten script je nejak nebezpecny?? :) ved nema ziadne uzivatelske vstupy a nema ani vystup...

inac, priestupne roky mozem kludne zanedbat, ze? :)

a mam problem:
Kód:
$mesiac[1] = 31;
$mesiac[2] = 28;
$mesiac[3] = 31;
$mesiac[4] = 30;
$mesiac[5] = 31;
$mesiac[6] = 30;
$mesiac[7] = 31;
$mesiac[8] = 31;
$mesiac[9] = 30;
$mesiac[10] = 31;
$mesiac[11] = 30;
$mesiac[12] = 31;

echo "mesiac ma {$mesiac[1]} dni";

mi vypise:
Kód:
mesiac ma 3 dni

a nemalo by vypisat, ze ma 31 dni? :D







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 14.07.2008 12:57

mne to funguje ale pre istotu daj "mesiac ma".$mesiac[1]."dni";


Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 14.07.2008 13:08

iny problem bol...uz som predtym mal definovane $mesiac :D takze vyriesene







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 22.11.07
Prihlásený: 26.02.10
Príspevky: 253
Témy: 1
Bydlisko: 127.0.0.1
Príspevok NapísalOffline : 14.07.2008 13:51

Tominator: co keby si sa neplietol do toho, comu nerozumies? :D predstav si ze bude mat asi tak 100000 radkov. teraz vyber kazdy jeden z databazy premienaj a porovnavaj.proste blbost. a ked nevies co je cron tak si nevymyslaj ze je nebezpecny ;)
blackshadow: tiez by bolo riesenie keby napises kratky criptik ktory najskor prida stlpec do tabulky nejakou funkciou (trebars aj vlastnorucne napisanou) premenil tvoj format datumu na timestamp zapisal to do toho noveho stlca a nakonci ten stary stlpec odstranis. potom by sa ti praca zjednodusila hadam vo vsetkom :P
a btw nebolo by lepsie s tymi mesiacmi spravit takto?
Kód:
$mesiac = array(
        array(1 => 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31),
        array(1 => 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31),
);

a ci je prestupny alebo nieje volal by si ho takto:
Kód:
$prestupny = ($rok % 4 == 0 && $rok % 100 != 0 || $rok % 400 == 0) ? 1 : 0;
echo $mesiac[$prestupny][cislo mesiaca];







_________________
PODPIS BOL ZMAZANY Z DOVODU NERESPEKTOVANIA PRAVIDIEL FORA!!!
Je povolených max. 5 riadkov s veľkosťou písma 9 (rozlíšenie 1280x1024px).
Sprava pre vedenie fora: ake nerespektovanie pravidiel. ved som mal v podpise citaciu na 2 riadky omg? lol? no a este jabber ale to neni moja chyba ze tu nemate input aj na jabber...
Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 14.07.2008 14:04

diki za radu, nabuduce spravim tak, ale teraz som to uz zacal inak a zatial mi to frci, takze necham tak uz....

snazim sa ten script aj dobre komentovat a hodim ho sem.... mozno to nekomu pomoze, ked to bude potrebovat...







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 14.07.2008 15:31

Vyriesil som to takto a viem ze to nie je najlepsie riesenie, ale funguje mi to, takze ak niekto chce, moze vyuzit:
Kód:
<?php
/******* CRON pre citanost clankov *******/
// vytvoril Blackshadow - www.bs.natt.sk
// pre WEB4MEN - www.web4men.sk
// zakaz kopirovania pod svoje meno
// inac dostanete BAN na tvar jak by Triminka povedal xD

/******* POUZITIE *******/
// ORDER BY citanost ASC - od najcitanejsieho zoradi
// odporucam este LIMIT 10 pre top 10 clankov
/******* /POUZITIE ******/

include "config.php"; //pripojenie k DB
$dnes = Date("j.m.Y", Time());

// rozdelenie datumu
$datumDNIdnes = explode(".", $dnes); //rozdelime na bodky
$denDnes = $datumDNIdnes[0];
$mesiacDnes = $datumDNIdnes[1];
$rokDnes = $datumDNIdnes[2];

// definujeme kazdy mesiac
$mesiacD[1] = 31;
$mesiacD[2] = 28;
$mesiacD[3] = 31;
$mesiacD[4] = 30;
$mesiacD[5] = 31;
$mesiacD[6] = 30;
$mesiacD[7] = 31;
$mesiacD[8] = 31;
$mesiacD[9] = 30;
$mesiacD[10] = 31;
$mesiacD[11] = 30;
$mesiacD[12] = 31;

// ***DNES POCET DNI***
// ak je napr 07 tak z toho spravi len 7 - nech nemame komplikace :)
if (strPos($mesiacDnes,"0")==0) { $mesiacDnes = str_replace("0","",$mesiacDnes); }
if (strPos($denDnes,"0")==0) { $denDnes = str_replace("0","",$denDnes); } //to iste s dnom

// priratava postupne pocet dni podla mesiacov po mesiac pred tymto
for ($i=1;$i<$mesiacDnes;$i++) {
  $pocetDni = $pocetDni + $mesiacD[$i];
}

$rozdielRokov = $rokDnes - 2008; //vyrata rozdiel rokov od roku 2008,uprav ak mas aj skorsie clanky
$nasobokRokov = $rozdielRokov * 365; //nasobi poctom dni.zanedbavam priestupne roky

// k poctu dni po predchadzajuci mesiac prirata pocet dni v tomto mesiaci a pocet dni z rokov
$pocetDni = $pocetDni + $denDnes + $nasobokRokov; //celkovy pocet dni


// ***CLANOK POCET DNI***
//vybereme clanok z DB
$query = "
  SELECT id,datum,prezrete
  FROM w4m_clanky
  ORDER BY id DESC
";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
  $id = $row['id'];
  $datum = $row['datum'];
  $prezrete = $row['prezrete']; //pocet prezreti clanku
  //datum v tvare DEN.MESIAC.ROK HODINA:MINUTA
  // rozdelenie datumu
  $datumEX = explode(" ", $datum);
  $datum = $datumEX[0]; //zahodenie casu
  $datumDNI = explode(".", $datum); //zas rozdelime datum z clanku
  $den = $datumDNI[0];
  $mesiac = $datumDNI[1];
  $rok = $datumDNI[2];
  // teraz bez komentarov pokracujeme tak ako predtym..spravit funkciu by bolo lepsie,ale tak.. :)
  if (strPos($mesiac,"0")==0) { $mesiac = str_replace("0","",$mesiac); }
  if (strPos($den,"0")==0) { $den = str_replace("0","",$den); }
  for ($i=1;$i<$mesiac;$i++) {
    $pocetDniC = $pocetDniC + $mesiacD[$i];
  }
  $rozdielRokov = $rok - 2008;
  $nasobokRokov = $rozdielRokov * 365;
  $pocetDniC = $pocetDniC + $den + $nasobokRokov;
  $rozdielDni = $pocetDni - $pocetDniC; //rozdiel dni,cize kolko je clanok uz pridany
  $priemerZaDen = $rozdielDni / $prezrete; //precitane v priemere za den
 
  // ulozime do DB, z ktorej budeme potom vytahovat..
  $update = "UPDATE w4m_clanky SET citanost='$priemerZaDen' WHERE id='$id'";
  $vysledokUpdate = mysql_query($update);
 
  // nakoniec zrusime tie premenne, inak by to ratalo kraviny
  unset ($pocetDniC);
  unset ($rozdielRokov);
  unset ($rozdielDni);
 
}

?>







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Správca fóra
Správca fóra
Najziadanejsi clanok - vzorec

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 14.07.2008 16:17

premazane...

kto je v com lepsi a kto ma pravdu vo veciach, ktore neriesia nastoleny problem, si rieste cez ss alebo sa stretnite osobne a prediskutujte si to medzi styrmi ocami :)


Naposledy upravil stenley dňa 14.07.2008 16:22, celkovo upravené 1






_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 14.07.2008 16:21

diki stenley, chcel som ti napisat, nech to premazes :)

co vravite na ten script?? funguje tak ako by mal, asi by sa to dalo aj jednoduchsie...







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok NapísalOffline : 14.07.2008 21:19

No kebyže tam máš TIMESTAMP, tak by to šlo určite ľahšie. Tam by totiž len stačilo urobiť rozdiel time() - čas v db a následne deleno 24. Potom už len zaokrúhliť a bolo by. Takto je to trochu zložitejšie, ale myslím, že to spĺňa svoj účel :).


Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 14.07.2008 22:23

jasne, viem ze zlozitejsie, ale co uz, ked som lolak a ukladam tie datumy tak hlupo :D







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 26.02.08
Prihlásený: 24.05.13
Príspevky: 372
Témy: 66
Bydlisko: Nové Zámky
Príspevok NapísalOffline : 14.07.2008 23:07

haha est dobre ze si to sem postol inak by som mal rovnaky problem :D uzaj idem upravit db :D este ze tam nemam ziadne clanky


Offline

Správca fóra
Správca fóra
Najziadanejsi clanok - vzorec

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 15.07.2008 8:20

mne sa zda, ze tam mas jednu mensiu chybicku krasy (ak sa nemylim), mozno, ze to ani velmi neovplyvni vysledok, ale az tak dopodrobna som nestudoval tvoj kod...

konkretnejsie ide o $nasobokRokov - ty predpokladas, ze ak ti vyjde $rozdielRokov dajme tomu 1, tak automaticky je $nasobokRokov 1*365 = 365 (trosku nechapem tie nazvy premennych, ale budiš), ale co v pripade, ze clanok zverejnis 31.12.2008 a tento skript sa spusti 1.1.2009? tam je predsa rozdiel len 1den a nie 365 dni, z tohto mi vychadza, ze ohodnotenie citanosti niektorych clankov bude dost skreslene oproti inym...

//EDIT1:
teraz som si este vsimol zvlastny vzorec na vypocitanie priemeru citanosti clanku za den, konkretne
Kód:
$priemerZaDen = $rozdielDni / $prezrete;

Cize, ked su dva clanky pridane v ten isty den, ale prvy clanok je precitany niekolkonasobne viackrat ako ten druhy, tak ti vyjde, ze druhy clanok je citanejsi, pretoze ti pri nom vysla vyssia hodnota tohto podielu => spravne by to preto malo byt naopak
Kód:
$priemerZaDen = $prezrete / $rozdielDni;


//EDIT2:
Trosku som sa s tvojim kodom pohral a tu mas mensiu ukazku, ako sa da dlhy kod zefektivnit, zrychlit a sprehladnit :)
Kód:
<?php
include "config.php"; //pripojenie k DB

function stripFirst0($value)
{
   $value = substr($value,0,1)=="0" ? substr($value,1) : $value;
   return $value;
}

$timestampNow = time();

$query = "SELECT id,datum,prezrete FROM w4m_clanky ORDER BY id DESC";
$result = @mysql_query($query);
while (list($id, $datum, $prezrete) = mysql_fetch_row($result)) {
   list($date,$time) = explode(" ",$datum);
   
   //odstranenie pripadnych prvych nul
   $arrDate = array_map("stripFirst0", explode(".",$date));
   $arrTime = array_map("stripFirst0", explode(":",$time));
   
   $timestampClanok = mktime($arrTime[0], $arrTime[1], 0, $arrDate[1], $arrDate[0], $arrDate[2]);
   $rozdielDni = floor(($timestampNow - $timestampClanok) / 86400);
   $priemerZaDen = $prezrete / $rozdielDni;
   
   // ulozime do DB, z ktorej budeme potom vytahovat..
   $update = "UPDATE w4m_clanky SET citanost='$priemerZaDen' WHERE id='$id'";
   $vysledokUpdate = @mysql_query($update);
}
?>

Ak som sa niekde nepomylil, malo by to robit to iste, ako tvoj kod







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Najziadanejsi clanok - vzorec

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 16.07.2008 11:37

heh, mas s tym pravdu :) diki moc stenley, ze si si dal tu namahu....
s tym priemerom za den si mal pravdu :D zdalo sa mi to cudne, tie vysledky co to hadzalo :D







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Odpovedať na tému [ Príspevkov: 24 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Excelovský vzorec - viacnásobná podmienka/vymedzenie vzorec

v Ostatné programy

2

802

12.03.2013 12:20

frenkacik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vzorec

v Elektronika

12

2713

09.10.2008 19:11

i666 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vzorec Excel

v Ostatné programy

1

1304

26.03.2019 9:07

Winnetou Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Excel vzorec

v Ostatné programy

7

590

22.03.2020 17:05

jezecek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. rank vzorec

v PHP, ASP

5

464

22.04.2010 14:45

Antuanet Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Excel vzorec

v Ostatné programy

3

938

06.01.2020 16:21

jezecek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. joomla clanok

v Redakčné systémy

0

526

08.01.2010 11:45

000kiko000 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PELTIEROV clanok

v Modifikácie, návody a projekty

9

6429

04.09.2007 20:18

Shark NX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. evolucia članok

[ Choď na stránku:Choď na stránku: 1, 2, 3 ]

v Paranormálne javy a teórie

80

4099

16.11.2009 18:47

raf Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Drupal - uputavaci clanok

v Redakčné systémy

8

858

28.12.2007 18:04

yazoo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vzorec v MS excel

v Ostatné programy

2

565

27.01.2011 11:33

zeto750 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Excel - ako na vzorec

v Ostatné programy

2

409

25.06.2018 18:01

tatko Tom Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problem s Jupiterom-clanok

v Redakčné systémy

1

433

07.01.2007 12:50

altt Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Článok: Počítačové x86 procesory

v Články

24

9004

30.01.2012 23:38

eXistenZ Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Článok - Ako vyberať komponenty

v Krčma

21

1261

04.12.2011 13:35

Corsa Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Excel vzorec / pravidlo - doplnanie tabulky

v Ostatné programy

2

580

11.04.2019 14:50

kuRca Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra