הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 20-01-11, 17:42   # 1
link
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 191

link לא מחובר  

השפעה על שליפה בrandom

שלום, אני צריך לבנות מערכת באנרים ובמערכת הזו אמור להיות באנרים שיחס הופעה שלהם יותר גבוהה. חשבתי על דרך אחת לביצוע:
לקחת את הרשומות בטבלה, להכפיל את הרשומה לפי היחס שהיא אמורה להופיע(למשל אם באנר צריך להופיע מבחינה סטטיסטית פי עשרה יותר אז אני שם אותו במערך פי עשר יותר משאר הבאנרים) ואז מערבב את המערך החדש ושולף ראנדומלית.

זה נכון לבנות ככה את הפונקציה הזו? אם יש לי מלא באנרים אז יכול להיות שיהיו לי יותר מאלף באנרים(אחרי כל ההכפלות) אז היחס לא משתנה והוא נשאר אותו דבר. אשמח אם תתנו לי תשובה.
  Reply With Quote
ישן 20-01-11, 17:52   # 2
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

שאלה מעניינת, מצטרף
  Reply With Quote
ישן 20-01-11, 22:42   # 3
link
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 191

link לא מחובר  

תשובות למישהו?
  Reply With Quote
ישן 21-01-11, 13:24   # 4
liorclub
חבר על
 
מיני פרופיל
תאריך הצטרפות: Jan 2007
גיל: 40
הודעות: 756
שלח הודעה באמצעות ICO אל liorclub שלח הודעה באמצעות MSN אל liorclub

liorclub לא מחובר  

יש לי רעיון שאולי ת%
__________________
ליאור
  Reply With Quote
ישן 25-01-11, 02:46   # 5
link
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 191

link לא מחובר  

לא הבנתי
  Reply With Quote
ישן 25-01-11, 07:56   # 6
Ender
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Apr 2007
הודעות: 76

Ender לא מחובר  

לא משהו שבדקתי,
אבל הנה דרך שחשבתי עליה:
קוד:
$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);
}
בהנחה שבטבלה t_banners יש שדה בשם rate שהוא אחוז ההופעות (למשל: 0.4), ושדה views שהוא כמות הצפיות בפועל
1. מחשבים את כמות הצפיות הכללית שהיתה עד עכשיו + 1 ומכניסים למשתנה $count
2. שולפים באנר אקראי בו אחוז החשיפה כפול מספר הצפיות הטוטאלי גדול ממספר הצפיות בפועל של הבאנר

אחוז החשיפה כפול מספר הצפיות הטוטאלי זה כמה פעמים הבאנר היה אמור להיות מוצג, אז אם המספר הזה גדול ממספר הצפיות בפועל, צריך להציג אותו.

נגיד יש 2 באנרים,
אחד עם אחוז של 0.4 ו- 4 צפיות
ואחד עם אחוז של 0.6 ו- 5 צפיות.
סך הצפיות הטוטאלי (9) + אחד יהיה 10.

הראשון לא יוצג כי 0.4 * 10 שווה ל- 4.
השני כן יוצג כי 0.6 * 10 גדול מ- 5.

מקווה שזה ברור ושזה יעזור
  Reply With Quote
ישן 25-01-11, 11:08   # 7
link
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 191

link לא מחובר  

האמת היא, שכבר פתרתי את זה ושכחתי להודיע. אתה עשית את זה בלי לולאה חיצונית או משהו, לעומתי שעשיתי את זה עם מה שהצעתי בהתחלת הנושא.
אבל נחמד מאוד ותודה רבה על ההענות.
  Reply With Quote
ישן 25-01-11, 16:24   # 8
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 32
הודעות: 4,086

BlueNosE לא מחובר  

ציטוט:
נכתב במקור על ידי link צפה בהודעה
האמת היא, שכבר פתרתי את זה ושכחתי להודיע. אתה עשית את זה בלי לולאה חיצונית או משהו, לעומתי שעשיתי את זה עם מה שהצעתי בהתחלת הנושא.
אבל נחמד מאוד ותודה רבה על ההענות.
כשרשמת את זה חשבתי אולי על לעשות את זה עם ORDER BY ולהשתמש בIFים בשאילתא. גם הדרך שלך עובדת אבל נראה לי שאפשר לייעל.. בכל מקרה, שיהיה בהצלחה
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote
ישן 25-01-11, 17:03   # 9
link
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 191

link לא מחובר  

סתם בשביל הספורט, אני אפרסם את שלי:

PHP קוד:
    $banners = array();
    
$hotspot->sql->query("SELECT script,ratio,id FROM bnners");

    while ( 
$r $hotspot->sql->fetch_row() )
    {
        
$banners[] = array($r[0],$r[1],$r[2]);
    }

        
$final_banners = array();

        foreach ( 
$banners as $k => $v )
        {
            
$times $v[1]*($hotspot->sql->num_row()-1);
            for ( 
$i 0$i <= $times;$i++)
            {
                
$final_banners[] = array($v[0],$v[2]);
            }
        }

        
shuffle($final_banners);

        
$chosen rand(1count($final_banners));

echo
$final_banners[$chosen][0]; 
  Reply With Quote
ישן 27-01-11, 20:04   # 10
idok
חבר חדש
 
מיני פרופיל
תאריך הצטרפות: Jan 2011
הודעות: 38

idok לא מחובר  

אוקי הרעיון שלי הוא כחה נגיד אתה רוצה יחס של 1 ל10 פשוט תסים במסד נתונים 10 פעמים את באנר מסםפר אחד ופעם אחת את מספר 2 ואז יהיה לך יחס של אחד ל10

Last edited by idok; 27-01-11 at 20:06..
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 16:13.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ