Hi,
I have a table of advertisement with expiry date and location. Currently, I display ad at random base on user’s location.
In the near future, I want to add tier system in to my ad sale. It means the first tier ad should be displayed more often than the second tier, but I don’t know how to control that.
Anyone? Here’s the code I’ve been done so far:
Creating a table:
$mysqli->query("CREATE TABLE `ads` (
`id` INT NOT NULL AUTO_INCREMENT,
`uid` INT NOT NULL,
`txt` TEXT NOT NULL,
`date` DATE NOT NULL default '0000-00-00',
`img` VARCHAR( 120 ) NOT NULL,
`location` VARCHAR( 75 ) NOT NULL,
`expiry` DATE NOT NULL default '0000-00-00',
PRIMARY KEY ( `id` ),
UNIQUE (
`id`
)
) ENGINE = INNODB CHARACTER SET UTF8 COLLATE utf8_general_ci
")
or die("DB error!");
Random with PHP:
SELECT id, uid, img, location, expiry
FROM ads
WHERE location = '$location' AND CURDATE() < expiry AND RAND()<(SELECT ((1/COUNT(*))*10) FROM ads)
ORDER BY RAND()
LIMIT 1
Some one suggests I have to add some sort of percentage but I wasn’t lucky with Google search.
Thank you. Any added knowledge is good news. I’m now convinced that it is seriously problematic. I’ll abandoned this until getting further information.