צפיות
תשובות
בעיה בחלוקה לעמודים
אני עובד על פורום והדבר היחיד שחסר לי בפורום חוץ ממערכת ניהול הוא חלוקה לעמודים… המסד שלי בנוי ככה :
|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 תשובות
קרא כאן
אתה בכלל קראתה את ההודעה שלי?
אני יכול לעשות חלוקה לעמודים הבעיה שלי היא לעשות חלוקה לשישורים ולא להודעות הנה עם הבעיה!!!
גם אני באותה סירה
אין כאן שום בעיה זה העיקרון!
ברור שעשית את השירוש בsub עד שנגמר כל השירוש עכשיו מזה שנאר זה לעשות את העמודים
אתה עושה סתם שאילתה
select * from messages where rootid=0
זה יחזיר לך את כל הודעות שאינם שורש (אם ככב בנית)
עכשיו אתה עושה לזה עמודים להודעות ופשוט מכניס את הסאב בלולאה
ואם הצלחת לעשות את השירוש אז זה לא יהיה לך בעיה.
ואם אתה לא יודע לעשות עמודים בכללי אז תקרא את המאמר שתומר נתן לך
אני מציג בצורה הלינארית
מה זאת אומרת? תסביר את עצמך.
יש שתי צורות של הצגה של פורום….
לינארית ורקורסיבית
אתה יכול לראות את הקוד?
עם השיטה הזאת טני עוד לא עבדתי אבל אני עדין לא מבין אתה יכול לראות לי את הקוד אולי אני יביא משהו מקוד וגם ימצא לך פיתרון?
שמע
אני לא יודע אם שלי זה לניארית או רקורסיבית
אבל אם אני ישים את הקוד אז תוכל לעזור לי לשים חלוקה לדפים?
הקוד הוא כאן:
אני משתמש בחלוקה ברמת ה-SQL
יש לך איסיקיו או מסג’ר?
יש לי…
yoava333@hotmail.co.il
8700668
אבל למה לא דרך הפורום??
כך תהיה אפשרות לאנשים שיתקלו בבעיה הזאת בעתיד ללמוד מה לשפר. זה המטרה של פורום מקצועי.
סליחה הנה האיסיקיו + מסנגר
איסיקיו: 8700668
מסנגר: amihollander@walla.co.il
וטל סליחה אבל
לא כדי דרך הפורום מפני שאם בונים משהו אז יש שגיאות והכל ואז זה יהפוך לכאילו צאט…
הצלחתי לחדד את השאלה
הפורום נועד למטרת עזרה ותמיכה
וזה לא יהפך לצ’אט כיוון שלא יענו לך תוך שנייה וחצי אבל יוכלו לעזור לך ושאחרים יראו את הפתרון לבעיה מסוימת שגם להם יש.
אחרת, למה יש פורומים עזרה ותמיכה? בשביל להפנות אנשים לאייסיקיו?
והחידוד…
רוצה לשלוף שירשור,
יש לי שתי עמודות שמאפשרות לי לסדר את ההודעות בקבוצות groupTime שמכיל את הזמן של התגובה האחרונה ו-groupId שמכיל את הId בייחודי של אותה קבוצת הודעות איך אני יכול בעזרת שני אלה לשלוף שני שירשורים שלמים ???
אני לא מבין איך היוצרים של webmaster עשו את זה!!!
אני חושב שהגעתי לשאלה המושלמת:
אני רוצה לשלוף שירשורים נגיד יש לי את המסד הבא (מצורפת תמונה)
אני רוצה לסדר אותם לפי groupTime desc ואז לשלוף את שני השירשורים עם התאריך הכי גבוה ואח"כ את השני השירשורים עם התאריך הכי גבוה שהם לא השניים הראשונים איך אני עושה את זה?
תיצור ה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-:)
תודה, שאלה אחרת
יש לי את הקוד הבא מה לא בסדר בו?
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){
מה השגיאה ?
ונסה קודם להציב במשתנה את מספר השדות ורק לאחר מכן להפעיל את ה-getRows.
לא משנה הייתה טעות דבילית
תודה
ניר ניסיתי אתה הרעיון שלך ויש בעיה
עם ה-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
כדאי לי להשתמש ב-regEX?
בsplit יהיה לך יותר קל
אני רוצה לעשות פסיקים ופשוט להוריד
את הפסיק האחרון!
אם אתה עובד ב-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)
עוד בעיה לא מובנת…
יש לי את הקוד הבא:
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
לט משנה העלתי את הקובץ לשרת הלא נכו
ן
רק משהו קטן
ב-JS כדי לסגור רקורדסט, קונקשיין וכדומה אז כותבים ()Close
אחרת זה לא נסגר כמו שצריך (ולכן יצא לך שב-VBS יותר מהיר (בהודעה שלך בתפוז))
תודה רבה | שאלה חדשה בעיה עם 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"
הנה
תנסה ליצור ככה ?
CDONTS.NewMail.1
ואם גם זה לא פועל אז יכול להיות שזה מותקן פשוט אין לך גישה אליו …..
עוד דבר
שמתי לב שגם PERSITS – EMAIL מותקן תנסה איתו אם עדין לא פועל אז
כנראה שיש בעיה בשרת שלח להם אימייל ……
מקווה שעזרתי נועם צברי
יש לי שאלה…
רשום שיש ASPEMAIL בשרת החינמי הזה עכשיו אני ניסיתי לעשות אימיייל שם על ASPEMAIL אבל זה לא עבד יענו זה מוזר וCDONTS אני לא ניסיתי אני עכשיו הולך לנסות ואם זה עובד זה טוב… חח
רגע רגע…
אני ניסיתי בCDONTS לישלוח אימייל עכשיו ככה אני עדיין לא קיבלתי עבר 10 דקות אבל זה לא רשם שום שגיאה שום דבר… יענו עבד רגיל
לאיזה שרת שלחת?
וואלה, נטוויז’ן וכו’?
וואלה…
אבל זה לא קשור כי שאני מפעיל את זה על הIIS זה עובד מצויין שלוח תוך שנייה
מאיפה אני יכול להוריד את CDONTS?
אממ…
תחפש בתפוז בFAQ יש שם הסבר איך להוריד ואיך להתקין והכל לי זה עבד על המחשב
לא משנה שאלה אחרת למה CDONTS לא….
פועל על ה-IIS אין כלום ב-bad mail אין כאילו הקוד לא פעל אבל שלחתי את הקוד שיש ב-מאמרים אלי לדואר…
מה אני עושה?
הנה הקוד
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
בטח שפועל…
אצלי פועל אבל לא הקוד שבמאמרים קוד אחר…תחפש קוד אחר לשליחת אימייל או שתבנה משהו זה מאוד פשוט הנה
<% 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 אן משהו כזה
זה לא שולח.. ויש לך טעות כתיב
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
%>
אאה שכחתי להגיד לך…
תיראה התקנת את זה היום? אם כן חכה יומיים פעם ראשונה זה לוקח לזה זמן לי לקח יומיים חכה אם זה ואחרי יומיים אם זה לא שלח אז זה כבר לא יודע מה אבל רציני לי לקחח יומייםואז אחרי הפעם הראשונה זה רץ מהר תוך שנייה
למה צריך לחכות יומים?