534
צפיות
צפיות
13
תשובות
תשובות
תהליך החיפוש…
שמעו עשיתי חיפוש שמציב בפתיחת השליפה מהמסד נתונים שהכניס הגולש
select * from table where message like '%" & request.form("message") & "%'",oConn
השתמשתי גם בשיטת ה-getRows לחלוקה לדפים
עכשיו עולה השאלה אצלי …
איך אני עושה כמו בחיפוש בגוגל שהם מקצרים את התוכן מתוף החיפוש???
תודה לכל העונים
13 תשובות
אממ… תן יותר פרטים…
כמו למשל: ההודעה כולה, מחרוזת החיפוש הספציפית, הבנתי ש request.form("messeage") זה המחרוזת תקן אותי אם אני טועה… אבל מהו הטור של ההודעה כולה?
אוקיי ניר…
הנה קוד:
<%=mid(rs("message"),instr(request.form("message") – 10,instr(request.form("message") + 10)%>
מקווה שזה יעבוד כי כרגע המצאתי את זה…
ד.א rs הוא שם הרקורדסט שלך…
זה לא עובד…
זה נותן לי שגיאה כזאת :::
Wrong number of arguments or invalid property assignment: 'instr'
יש למישהו/י פיתרון אחר ?
סליחה!!
<%=mid(rs("message"),instr(rs("message"),request.form("message") – 10,instr(rs("message"),request.form("message") + 10)%>
גם זה לא עובד…
ועכשיו זו השגיאה :::
Type mismatch: '[string: "ב<b>ר"]'
למישהו יש אולי עוד פיתרון???
זה בגלל שהדטא בייס לא מעביר את העבר
שים בראש הדף
<%@codepage=1255%>
אולי ככה….
אתה רוצה למשוך נגיד מטקסט שיש בו 1500 תווים רק 60 תווים ראשונים אז תנסה אולי ככה.
dim TempString
TempString=mid(rs.fields("YouField"),1,CountChars)
response.write TempString
CountChars=כמות תווים שאתה רוצה למשוך ממחרוזת
תודה רבה אבל…
בגוגל זה גם מראה את את המילה שחיפשתי בתוך התוכן המקוצר
איך אני מבסס את זה על הקוד הזה ?
יענו יש 1500 תווים ואני שולף 60 אבל מבין ה-60 תווים האלו אין הערך שחיפשתי
אז איך אני מחפש בתוך התוכן ומציג את התוצאות כמו בגוגל ?
ל-nirtheking
הנה קוד מתוקן (סופי)
<%
wherefound = instr(cstr(rs("message")), cstr(request.form("message")))
if wherefound < 10 then
countfrom = wherefound
else
countfrom = 10
end if
if wherefound > len(rs("message") – 10 then
countto = len(rs("message") – wherefound
else
countto = 10
end if
<%=mid(cstr(rs("message")),wherefound – countfrom,wherefound + countto)%>
גם זה אני לא בטוח שיעבוד, תנסה…
יאו גם כן אני…
<%
wherefound = instr(cstr(rs("message")), cstr(request.form("message")))
if wherefound < 10 then
countfrom = wherefound
else
countfrom = 10
end if
if wherefound > len(rs("message") – 10 then
countto = len(rs("message") – wherefound
else
countto = 10
end if
%>
<%=mid(cstr(rs("message")),wherefound – countfrom,wherefound + countto)%>
שכחתי לסגור ב%> חחחחח
שמע…
אלון שמע אני עובד עם getRows וגם הכנסתי את השדה Message לתוך משתנה כדי לבצע רפלייס
ולבסוף הקוד לא עובד כי ה-len לא מצליח לקרוא לי את המשתנה Meesage
את השורה הזאת :::
countto = len(rs("message") – wherefound)
הפכתי לזה :::
countto = len(message – wherefound)
וגם היה חסר לך : (
ותודה רבה (למרות שזה לא עובד)
הנה הרעיון
הקוד יעבוד רק אם הGETROWS הוא מערך(אני לא יודע כל כך ASP אני בעיקר עובד בPHP).
בWHILE או הFOR של ההדפסה אתה מציב משתנה עם התוכן.
אחר כך אתה עושה FOR למשתנה עד נגיד למספר 7 ואז מדפיס בתוך הFOR מהמערך של המשתנה את המספר הנה דוגמה:
while
i=0
messege = rs("messege")'אתה יכול לשנות את הRS לכל משתנה או מערך שבא לך
FOR i >100'מספר התווים
response.write messege[i]
LOOP
end while
אני די בטוח שהסיטקס לא נכון אבל אתה תמיד יכול לשנות אותו.
בהצלחה