|
הרשם | ![]() |
שאלות ותשובות | ![]() |
רשימת חברים | ![]() |
לוח שנה | ![]() |
הודעות מהיום | ![]() |
חיפוש | ![]() |
|
![]() |
![]() |
|
כלים לאשכול | תצורת הצגה |
![]() |
# 1 |
חבר בקהילה
|
השפעה על שליפה בrandom
שלום, אני צריך לבנות מערכת באנרים ובמערכת הזו אמור להיות באנרים שיחס הופעה שלהם יותר גבוהה. חשבתי על דרך אחת לביצוע:
לקחת את הרשומות בטבלה, להכפיל את הרשומה לפי היחס שהיא אמורה להופיע(למשל אם באנר צריך להופיע מבחינה סטטיסטית פי עשרה יותר אז אני שם אותו במערך פי עשר יותר משאר הבאנרים) ואז מערבב את המערך החדש ושולף ראנדומלית. זה נכון לבנות ככה את הפונקציה הזו? אם יש לי מלא באנרים אז יכול להיות שיהיו לי יותר מאלף באנרים(אחרי כל ההכפלות) אז היחס לא משתנה והוא נשאר אותו דבר. אשמח אם תתנו לי תשובה. |
![]() |
![]() |
# 2 |
חבר וותיק
|
שאלה מעניינת, מצטרף
|
![]() |
![]() |
# 3 |
חבר בקהילה
|
תשובות למישהו?
|
![]() |
![]() |
# 4 |
חבר על
|
יש לי רעיון שאולי ת%
__________________
ליאור |
![]() |
![]() |
# 5 |
חבר בקהילה
|
לא הבנתי
|
![]() |
![]() |
# 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. מקווה שזה ברור ושזה יעזור ![]() |
![]() |
![]() |
# 7 |
חבר בקהילה
|
האמת היא, שכבר פתרתי את זה ושכחתי להודיע. אתה עשית את זה בלי לולאה חיצונית או משהו, לעומתי שעשיתי את זה עם מה שהצעתי בהתחלת הנושא.
אבל נחמד מאוד ותודה רבה על ההענות. |
![]() |
![]() |
# 8 |
אין כמו ב127.0.0.1
|
כשרשמת את זה חשבתי אולי על לעשות את זה עם ORDER BY ולהשתמש בIFים בשאילתא. גם הדרך שלך עובדת אבל נראה לי שאפשר לייעל.. בכל מקרה, שיהיה בהצלחה
|
![]() |
![]() |
# 9 |
חבר בקהילה
|
סתם בשביל הספורט, אני אפרסם את שלי:
PHP קוד:
|
![]() |
![]() |
# 10 |
חבר חדש
|
אוקי הרעיון שלי הוא כחה נגיד אתה רוצה יחס של 1 ל10 פשוט תסים במסד נתונים 10 פעמים את באנר מסםפר אחד ופעם אחת את מספר 2 ואז יהיה לך יחס של אחד ל10
Last edited by idok; 27-01-11 at 20:06.. |
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|