Visa ett inlägg
Oläst 2014-03-13, 18:41 #11
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
Har testat en av möjligheterna nu och är ganska nära det jag vill åt, äldsta har definitivt mer "vikt" men ser ut att ha ganska seriösa "brytpunkter" och senaste inlägget har löjligt låg "vikt" :P Så får fixa en bättre logaritmiskt urval som slumpgenerator sen, fibonacci är ju en ganska enkel lösning



Kod:
CREATE TABLE `NewsPostsTest` (
  `PostID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `PostTitle` varchar(512) CHARACTER SET utf8 COLLATE utf8_swedish_ci DEFAULT NULL,
  `PostTime` datetime DEFAULT NULL,
  `PostViewCount` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`PostID`),
  KEY `PostTime` (`PostTime`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8;

PHP-kod:
<?php


for ($i 0$i 2$i++) {


// Select random year-month-day without the - and weighted to newest, it will be reversed in the query
$TheRand mt_rand(mt_rand(2012010120141212),20141212 );





$PostQuery $db->prepare("
    SELECT
        *,
        DATE_FORMAT(PostTime, '%Y%m%d') as SuperTime
    FROM
        NewsPostsTest
    HAVING
        SuperTime <= 
$TheRand
    ORDER BY
        RAND()
    LIMIT
        5
"
);


$PostQuery->execute();




while (
$PostData $PostQuery->fetch(PDO::FETCH_ASSOC)) {


$PostUpdate $db->query("
    UPDATE
        NewsPostsTest
    SET
        PostViewCount    = PostViewCount+1
    WHERE
        PostID            = '
{$PostData[PostID]}'
"
);


// End of PostData while loop



// End of for loop
(ja, allt är fulkodat nu under testet)

Senast redigerad av JesperA den 2014-03-13 klockan 18:44
JesperA är inte uppkopplad   Svara med citatSvara med citat