Hi, I have a table of advertisement with expiry date and location. Currently, I display ads 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. Is there anyway I can do this? Thank you,
Thank you very much for your response. I thought there was hopeless. Here's the thing I've been doing 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!"); Code (markup): 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 Code (markup): I've tried to google what you've suggested. No luck so far...
oh you used query, not in a single query though but in a procedure ie. given 3 types of ads 1st - 70% 2nd - 20% 3rd - 10% pseudo code Initialize ad_number to 1 Initialize random number in between 1-100 to n variable if n in between 1-70 return 1st tier else n in between 71-90 return 2nd tier else n in between 91-100 return 3rd tier else return null