שלח תשובה

זירת השאלות

393
צפיות
47
תשובות

בעיה בחלוקה לעמודים

,‏ 14 באוגוסט, 2004



אני עובד על פורום והדבר היחיד שחסר לי בפורום חוץ ממערכת ניהול הוא חלוקה לעמודים… המסד שלי בנוי ככה :

|msgID||msgTitle||msgBody||msgTime||groupId||groupTime|

אני ניסיתי כבר לעשות חלוקה ברמת ה-sql אבל מה שיצא לי זה 10 ההודעות הראשונות ולא השירשורים…

rs.open "SELECT TOP 5 msgId, msgSubject, msgBody, levelId, groupId, msgTime FROM forum WHERE groupId not in(select top "& 5*pNum&" groupId from forum order by groupTime desc) ORDER BY groupTime desc, msgId" , conn,3,3

היה לי רעיון לעשות שאילתא שתעבור על המסד נתונים ותבדוק כל פעם מחדש איזו הודעה היא ההודעה ה-11 וה-21 וכן הלאה אבל זה גרם להאטה של הפורום עד כדי כך שיש פעמים שהפורום נתקע… למישהו יש רעיון איך אני עושה את זה?

תגיות:

47 תשובות

  1. אתה בכלל קראתה את ההודעה שלי?
    אני יכול לעשות חלוקה לעמודים הבעיה שלי היא לעשות חלוקה לשישורים ולא להודעות הנה לינק עם הבעיה!!!

  2. dudubs הגיב:

    אין כאן שום בעיה זה העיקרון!
    ברור שעשית את השירוש בsub עד שנגמר כל השירוש עכשיו מזה שנאר זה לעשות את העמודים
    אתה עושה סתם שאילתה
    select * from messages where rootid=0
    זה יחזיר לך את כל הודעות שאינם שורש (אם ככב בנית)
    עכשיו אתה עושה לזה עמודים להודעות ופשוט מכניס את הסאב בלולאה
    ואם הצלחת לעשות את השירוש אז זה לא יהיה לך בעיה.
    ואם אתה לא יודע לעשות עמודים בכללי אז תקרא את המאמר שתומר נתן לך

  3. יש שתי צורות של הצגה של פורום….
    לינארית ורקורסיבית
    הנה פירוט

  4. dudubs הגיב:

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

  5. GreenS הגיב:

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

  6. אבל למה לא דרך הפורום??
    כך תהיה אפשרות לאנשים שיתקלו בבעיה הזאת בעתיד ללמוד מה לשפר. זה המטרה של פורום מקצועי.

  7. Ami הגיב:

    סליחה הנה האיסיקיו + מסנגר
    איסיקיו: 8700668
    מסנגר: amihollander@walla.co.il

  8. Ami הגיב:

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

  9. BuildHome הגיב:

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

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

  10. והחידוד…
    רוצה לשלוף שירשור,
    יש לי שתי עמודות שמאפשרות לי לסדר את ההודעות בקבוצות groupTime שמכיל את הזמן של התגובה האחרונה ו-groupId שמכיל את הId בייחודי של אותה קבוצת הודעות איך אני יכול בעזרת שני אלה לשלוף שני שירשורים שלמים ???
    אני לא מבין איך היוצרים של webmaster עשו את זה!!!

  11. אני חושב שהגעתי לשאלה המושלמת:
    אני רוצה לשלוף שירשורים נגיד יש לי את המסד הבא (מצורפת תמונה)
    אני רוצה לסדר אותם לפי groupTime desc ואז לשלוף את שני השירשורים עם התאריך הכי גבוה ואח"כ את השני השירשורים עם התאריך הכי גבוה שהם לא השניים הראשונים איך אני עושה את זה?

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

    תיצור הVIEW כזה במסד


    SELECT groupId
    FROM <yourTable>
    WHERE NOT isNull(groupTime)
    ORDER BY groupTime DESC

    (בהנחה ש-groupTime זה שדה שמקבל ערכים רק בהודעות ראשיות)

    לאחר מכן אתה פותח רקורדסט ומבצע עליו את שאילתת SQL שתבחר רק את מס' ההודעות שאתה רוצה – משהו כזה:

    SELECT TOP X groupId FROM theView
    [WHERE groupId NOT IN(SELECT TOP X*pageNum groupId FROM theView)]

    X -זה מספר השרשורים בעמוד
    theView זה השם שנתת ל-VIEW במסד
    חלק ה-WHERE מתבצע אך ורק מהעמוד השני

    לאחר מכן אתה משתמש ב-GETSTRING כדי לקבל את ה-groupIdים בצורת מחרוזת מופרדת בפסיקים

    ולבסוף אתה עושה את השאילתא שלך בסגנון הבא:

    "SELECT TOP 5 msgId, msgSubject, msgBody, levelId, groupId, msgTime
    FROM forum
    WHERE groupId not in("+groupIdString+") ORDER BY groupTime desc, msgId"

    כאשר groupIdString זה המחרוזת שהופקה מה-getString

    מקוה שעזרתי |4U| (שיט אין את הסמיילי הזה כאן P-:)

  13. תודה, שאלה אחרת
    יש לי את הקוד הבא מה לא בסדר בו?


    var tempArr=rs.getRows()
    var getR = tempArr.toArray()
    var NOF=rs.Fields.Count
    rs.close
    delete rs
    rs = null;
    for (i=0;i<getR.length;getR+=6){

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

    מה השגיאה ?
    ונסה קודם להציב במשתנה את מספר השדות ורק לאחר מכן להפעיל את ה-getRows.

  15. ניר ניסיתי אתה הרעיון שלך ויש בעיה
    עם ה-getString אני כתבתי ככה:

    rs.GetString(2,-1,"",",")

    ומשום מה יש שגיאה מה הבעיה?

    Microsoft JET Database Engine error '80040e14'

    In operator without () in query expression 'groupId in 6,5,4,3,2,1,'.

    /index3.asp, line 24

  16. אני רוצה לעשות פסיקים ופשוט להוריד
    את הפסיק האחרון!

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

    אם אתה עובד ב-JS
    אז לא (ב-VBS תשתמש ב-LEFT)

    JS
    var x = "1,2,3,"
    x = x.substring(0,x.length-1)

    VBS
    dim x
    x= "1,2,3,"
    x = Left(x,0,Len(x)-1)

  18. עוד בעיה לא מובנת…
    יש לי את הקוד הבא:

    var groupStringId=rs.GetString(2,-1,"",",")
    groupStringId = groupStringId.substr(0,groupStringId.length-1)
    rs.Close
    rs.open("SELECT msgId, msgSubject, msgBody, levelId, groupId, msgTime FROM forum where groupId in ("+groupStringId+") ORDER BY groupTime desc, msgId", conn,3,3)
    var tempArr = rs.getRows()
    var getR = tempArr.toArray()

    למה הוא לא פועל הנה לינק לדף עצמו

    והנה ה-ERROR


    Microsoft JET Database Engine error '80040e14'

    Syntax error (missing operator) in query expression 'groupId in ()'.

    /index3.asp, line 25

  19. לט משנה העלתי את הקובץ לשרת הלא נכו
    ן

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

    רק משהו קטן
    ב-JS כדי לסגור רקורדסט, קונקשיין וכדומה אז כותבים ()Close
    אחרת זה לא נסגר כמו שצריך (ולכן יצא לך שב-VBS יותר מהיר (בהודעה שלך בתפוז))

  21. תודה רבה | שאלה חדשה בעיה עם cdonts
    אני מאחסן בשרת חינמי ומשום מה אני לא מצליח לשלוח אימייל למרות שלפי בדיקה שעשיתי יש לי את אובייקט האימייל CDONTS (ראה קובץ מצורף) כשאני מנסה להפעיל אותו יש לי את השגיאה הבאה:

    Microsoft VBScript runtime error '800a01ad'

    ActiveX component can't create object

    /mail.asp, line 19

    ה-error מצביע על השורה המודגשת:


    mailSubject = "מה המצב אחי?"

    Set objMail = Server.CreateObject("CDONTS.Newmail") ' Set the CDONTS.newMail Object

    objMail.MailFormat=cdoMailFormatMIME

    objMail.SetLocaleIDs(1255)

    objMail.From = "zohar_p@nana.co.il"

    הנה קישור לדף
    ולדף הבדיקה

  22. MasterMind הגיב:

    תנסה ליצור ככה ?

    CDONTS.NewMail.1

    ואם גם זה לא פועל אז יכול להיות שזה מותקן פשוט אין לך גישה אליו …..
    עוד דבר
    שמתי לב שגם PERSITS – EMAIL מותקן  תנסה איתו  אם עדין לא פועל אז
    כנראה שיש בעיה בשרת  שלח להם אימייל ……
    מקווה שעזרתי  נועם צברי

  23. talg14 הגיב:

    יש לי שאלה…
    רשום שיש ASPEMAIL בשרת החינמי הזה עכשיו אני ניסיתי לעשות אימיייל שם על ASPEMAIL אבל זה לא עבד יענו זה מוזר וCDONTS אני לא ניסיתי אני עכשיו הולך לנסות ואם זה עובד זה טוב… חח

  24. talg14 הגיב:

    רגע רגע…
    אני ניסיתי בCDONTS לישלוח אימייל עכשיו ככה אני עדיין לא קיבלתי עבר 10 דקות אבל זה לא רשם שום שגיאה שום דבר… יענו עבד רגיל

  25. talg14 הגיב:

    וואלה…
    אבל זה לא קשור כי שאני מפעיל את זה על הIIS זה עובד מצויין שלוח תוך שנייה

  26. talg14 הגיב:

    אממ…
    תחפש בתפוז בFAQ יש שם הסבר איך להוריד ואיך להתקין והכל לי זה עבד על המחשב

  27. לא משנה שאלה אחרת למה CDONTS לא….
    פועל על ה-IIS אין כלום ב-bad mail אין כאילו הקוד לא פעל אבל שלחתי את הקוד שיש ב-מאמרים אלי לדואר…
    מה אני עושה?

  28. הנה הקוד


      Set objMail = Server.CreateObject("CDONTS.Newmail")
      objMail.To = "yoava333@walla.co.il"
      objMail.Subject = "Rainbow Six Recruit Form"
      objMail.From = "Recruit@your-site.com"
      objMail.Body = "Alias: " & Request.Form("alias") & VBCrLf + "Email: " & Request.Form("email") & VBCrLf + "Name: " & Request.Form("name") & VBCrLf + "Gamertag: " & Request.Form("Gamertag") & VBCrLf + "Age: " & Request.Form("age") & VBCrLf + "Sex: " & Request.Form("sex") & VBCrLf + "Attend Clan Matches: " & Request.Form("clan") & VBCrLf + "Connection: " & Request.Form("connection") & VBCrLf + "Stuff: " & Request.Form("info") & VBCrLf + "AIM SN: " & Request.Form("AIM") & VBCrLf + "MSN SN: " & Request.Form("MSN")
      objMail.Send
      Set objMail = Nothing

  29. talg14 הגיב:

    בטח שפועל…
    אצלי פועל אבל לא הקוד שבמאמרים קוד אחר…תחפש קוד אחר לשליחת אימייל או שתבנה משהו זה מאוד פשוט הנה


    <% Dim mail,mailb
    mailb = "שליחת אימייל בהצלחה נישלח"
    set mail = server.createobject("CDONTS.newmail")
    mail.importnce = 2
    mail.subject = "try to send"
    mail.from = "talgt@walla.co.il"
    mail.to = "your@email"
    mail.body = mailb
    mail.send

    אני חושב שזה קוד טוב זה קוד שרשמתי עכשיו ולא ניסיתי אבל הוא אמרו לעבוד אם התקנת הכל טוב…ודרך אגב אם לא אז רשום לך הודעה יענו משהו אם invlid אן משהו כזה

  30. זה לא שולח.. ויש לך טעות כתיב

    mail.importense = 2
    ולא
    mail.importnce = 2

    והנה הקוד שאני מנסה אותו וזה פשוט לא נשלח…

    <%
    Dim mail,mailb
    mailb = "שליחת אימייל בהצלחה נישלח"
    set mail = server.createobject("CDONTS.newmail")
    mail.from = "talgt@walla.co.il"
    mail.to = "yoava333@walla.co.il"
    mail.subject = "try to send"
    mail.body = mailb
    mail.send
    %>

  31. talg14 הגיב:

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

שלח תשובה

חדש! אחסון אתרים של וובמאסטר

שירות אחסון אתרים
המקצועי של וובמאסטר!

מומחים באירוח אתרי
WordPress, Joomla, Drupal

  • שרתי לינוקס עם CloudLinux, LiteSpeed
  • 1GB דיסק SSD, 10GB תעבורה חודשית
  • ממשק ניהול cPanel, תעודת SSL חינם

עכשיו במחיר היכרות:
רק 420 ש"ח לשנה!