שלח תשובה

זירת השאלות

778
צפיות
11
תשובות

הצגה באופן רנדומלי

,‏ 13 בפברואר, 2005

שלום לכם,

אני מנסה להציג מספר מוצרים באופן רנדמלי,
כלומר אני רוצה, שכשנכנסים לאתר יהיו ארבעה מוצרים שמוצגים באופן רנדומלי, מתוך עשרת המוצרים החדשים, כתבתי את הקוד כדלהלן:



<%        

    Const adCmdText4 = &H0001
        Set conn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.Recordset")
     SQLstr="SELECT top 10 * FROM PRODUCTS order by indate desc"  
        rs.Open SQLstr,conn,3,adCmdText4
            
            Dim intRnd
            Randomize Timer
      intRnd = (Int(RND * 10 + 1))
      RS.Move intRnd
            
      
      do until rs.eof
            Response.Write rs("cdname")
            Response.Write "<br>"
            rs.movenext
      loop
      
            
    
rs.Close
set rs = nothing
%>



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

תגיות:

11 תשובות

  1. אוריקס הגיב:

    אתה יכול להתחמק מזה
    ע"י פתרון קל, פשוט ויעיל ברמת ה ASP. קרא כאן: (הפתרון האחרון מומלץ במיוחד)

    http://www.tapuz.co.il/tapuzforum/main/ForumFAQAnswer.asp?id=130&QID=115

  2. יוסיש הגיב:

    וזה מה שישציג לי מספר רשומות
    באופן רנדומלי? אני רוצה לדוגמא כמו בכתובת להלן:
    http://www.mostlymusic.com
    שימו לב שבכל כניסה מוצגים מוצרים אחרים.

  3. אוריקס הגיב:

    לא זכרתי שהכנסתי את התשובה שלך…

  4. יוסיש הגיב:

    תודה רבה!!!
    אבל אייך אני עושה שיציג את החדשים הוא מציג לי באופן רנדומלי את כל המוצרים באתר, ואני רוצה שהוא יציג לי רק את החדשים?

  5. ניר טייב הגיב:

    תשתמש ב-TOP X כאשר X זה מס'…

    SELECT TOP X <fields> ….

  6. יוסיש הגיב:

    כתבתי top 10
    והוא מציג לי עשר מתוך כל המוצרים ולא מתוך כל החדשים:


    sql = "SELECT TOP 8 * FROM PRODUCTS ORDER BY Rnd(-1 *"&rnd()&"*PRODUCTS.album_id)"

  7. יוסיש הגיב:

    כתבתי TOP 10
    והוא מציג לי עשר מתוך כל המוצרים ולא מתוך כל החדשים:


    sql = "SELECT TOP 8 * FROM PRODUCTS ORDER BY Rnd(-1 *"&rnd()&"*PRODUCTS.album_id)"

  8. אוריקס הגיב:

    מן הסתם
    אתה שולף את כל המוצרים, מסדר אותם בסדר רנדומלי ואז לוקח את ה 8 הראשונים.
    תבהיר שוב מה אתה בדיוק רוצה לעשות .

  9. ניר טייב הגיב:

    מממ….
    אתה יכול לסדר קודם כל לפי תאריך השקת המוצר (או עמודה עם ערך לוגי דומה)
    ואח"כ לסדר אותם רנדומלי:

    SELECT … FROM … ORDER BY date_fld, Rnd(x*id_fld)

שלח תשובה