![]() |
# 6 |
חבר בקהילה
|
לא משהו שבדקתי,
אבל הנה דרך שחשבתי עליה: קוד:
$count = 1; $sql = "SELECT COUNT(`views`) FROM `t_banners`"; $res = mysql_query($sql); if($row=mysql_fetch_array($res)) { $count = intval($row[0])+1; } $sql = "SELECT * FROM `t_banners` WHERE ((`rate` * {$count}) > `views`) ORDER BY RAND() LIMIT 1"; $res = mysql_query($sql); if($row=mysql_fetch_assoc($res)) { // show banner code here $sql = "UPDATE `t_banners` SET `views` = `views` + 1 WHERE `id` = '{$row["id"]}'"; mysql_query($sql); } 1. מחשבים את כמות הצפיות הכללית שהיתה עד עכשיו + 1 ומכניסים למשתנה $count 2. שולפים באנר אקראי בו אחוז החשיפה כפול מספר הצפיות הטוטאלי גדול ממספר הצפיות בפועל של הבאנר אחוז החשיפה כפול מספר הצפיות הטוטאלי זה כמה פעמים הבאנר היה אמור להיות מוצג, אז אם המספר הזה גדול ממספר הצפיות בפועל, צריך להציג אותו. נגיד יש 2 באנרים, אחד עם אחוז של 0.4 ו- 4 צפיות ואחד עם אחוז של 0.6 ו- 5 צפיות. סך הצפיות הטוטאלי (9) + אחד יהיה 10. הראשון לא יוצג כי 0.4 * 10 שווה ל- 4. השני כן יוצג כי 0.6 * 10 גדול מ- 5. מקווה שזה ברור ושזה יעזור ![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|