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(20120101, 20141212),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)