[ Príspevkov: 24 ] 
AutorSpráva
Offline

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

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
NapísalOffline : 13.07.2008 22:35 | Najziadanejsi clanok - vzorec

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: 1757
Témy: 17 | 17
NapísalOffline : 13.07.2008 22:53 | Najziadanejsi clanok - vzorec

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 | 1
Bydlisko: 127.0.0.1
NapísalOffline : 13.07.2008 23:21 | Najziadanejsi clanok - vzorec

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: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 13.07.2008 23:44 | Najziadanejsi clanok - vzorec

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 | 1
Bydlisko: 127.0.0.1
NapísalOffline : 13.07.2008 23:56 | Najziadanejsi clanok - vzorec

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: 1735
Témy: 15 | 15
Bydlisko: triminka@sp...
NapísalOffline : 13.07.2008 23:57 | Najziadanejsi clanok - vzorec

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 | 1
Bydlisko: 127.0.0.1
NapísalOffline : 14.07.2008 0:41 | Najziadanejsi clanok - vzorec

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: 3991
Témy: 96 | 96
NapísalOffline : 14.07.2008 10:01 | Najziadanejsi clanok - vzorec

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ý: 12.06.17
Príspevky: 1408
Témy: 28 | 28
Bydlisko: Bratislava
Vek: 36
NapísalOffline : 14.07.2008 10:20 | Najziadanejsi clanok - vzorec

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


_________________
PC: OS: Windows 10 (64bit) CPU: INTEL Core i5-4440 GPU: ASUS ATI R9280X RAM: Kingston 8GB DDR3 1600MHz MB: MSI B85-G43 Gaming HDD: Seagate 1TB HDD Barracuda SSD: SAMSUNG 120GB HDD 840 EVO CASE: COOLERMASTER N400
Mobil: OS: Android 4.4.2 Model: LG G2 D802 16GB
Offline

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

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3991
Témy: 96 | 96
NapísalOffline : 14.07.2008 10:33 | Najziadanejsi clanok - vzorec

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: 1735
Témy: 15 | 15
Bydlisko: triminka@sp...
NapísalOffline : 14.07.2008 10:47 | Najziadanejsi clanok - vzorec

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: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 14.07.2008 12:01 | Najziadanejsi clanok - vzorec

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: 3991
Témy: 96 | 96
NapísalOffline : 14.07.2008 12:57 | Najziadanejsi clanok - vzorec

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: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 14.07.2008 13:08 | Najziadanejsi clanok - vzorec

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 | 1
Bydlisko: 127.0.0.1
NapísalOffline : 14.07.2008 13:51 | Najziadanejsi clanok - vzorec

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: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 14.07.2008 14:04 | Najziadanejsi clanok - vzorec

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: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 14.07.2008 15:31 | Najziadanejsi clanok - vzorec

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 14.07.2008 16:17 | Najziadanejsi clanok - vzorec

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

_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

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

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 14.07.2008 16:21 | Najziadanejsi clanok - vzorec

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ý: 30.11.14
Príspevky: 660
Témy: 53 | 53
NapísalOffline : 14.07.2008 21:19 | Najziadanejsi clanok - vzorec

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: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 14.07.2008 22:23 | Najziadanejsi clanok - vzorec

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 | 66
Bydlisko: Nové Zámky
NapísalOffline : 14.07.2008 23:07 | Najziadanejsi clanok - vzorec

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 15.07.2008 8:20 | Najziadanejsi clanok - vzorec

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


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

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

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 16.07.2008 11:37 | Najziadanejsi clanok - vzorec

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ď
 [ Príspevkov: 24 ] 


Najziadanejsi clanok - vzorec



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

442

12.03.2013 12:20

frenkacik

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

Vzorec

v Elektronika

12

2167

09.10.2008 19:11

i666

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

rank vzorec

v PHP, ASP

5

233

22.04.2010 14:45

Antuanet

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

vzorec v MS excel

v Ostatné programy

2

369

27.01.2011 11:33

zeto750

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

Excel - vzorec na poziciu v texte

v Ostatné programy

3

531

20.05.2007 11:08

ONder

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

joomla clanok

v Redakčné systémy

0

339

08.01.2010 11:45

000kiko000

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

PELTIEROV clanok

v Modifikácie, návody a projekty

9

5239

04.09.2007 20:18

Shark NX

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

3045

16.11.2009 18:47

raf

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

Drupal - uputavaci clanok

v Redakčné systémy

8

669

28.12.2007 18:04

yazoo

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

Problem s Jupiterom-clanok

v Redakčné systémy

1

284

07.01.2007 12:50

altt

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

Článok: Počítačové x86 procesory

v Články

24

8586

30.01.2012 23:38

eXistenZ

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

Článok - Ako vyberať komponenty

v Krčma

21

873

04.12.2011 13:35

Corsa

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

Display-e na notebookoch - clanok

v Notebooky a netbooky

0

393

10.07.2008 20:37

peto007

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

adresa v tvare clanok.php?id=nieco

v PHP, ASP

6

220

28.08.2013 19:15

Ďuri

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

Palivový článok pre notebooky lepší ako Li-Ion batéria

v Novinky

5

626

20.10.2008 22:24

fuco

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

AMD pamate v Europe ( Clanok nic moc, skor len taky oznam )

v Novinky

7

485

26.01.2012 15:49

Rushhh



© 2005 - 2017 PCforum, edited by JanoF