414
צפיות
צפיות
13
תשובות
תשובות
שאלה פשוטה יחסית
(האשכול שפתחתי נועד בעיקר לשרשורים הקרובים שלי)
בכל מקרה, השאלה שלי היא כיצד להציג את הרשומה החדשה ביותר שהוכנסה למסד הנתונים שלי (צורך העניין , Access) .
נגיד הוספתי חדשות : אני רוצה שרק רשומה אחת של חדשות תופיע לי בדף הראשי, היתר בארכיון (הכנתי כבר ארכיון) . אז בעצם שכחתי (נשחקתי) מהי הפקודה שמחזירה לי את הרשומה החדשה ביותר והאם היא פקודה הקשורה לאובייקט הrs שלי (כמו לדוגמא : rs.movenext) ?
תודה מראש
13 תשובות
SQL נטו
SELECT TOP 1 <fields> FROM tbl ORDER by <field> DESC
ההפך …
צודק אחי SQL זה הפתרון אבל מה שאני צריך זה ההפך ,
הTOP לא מציג לי את הרשומה הכי חדשה שהתווספה, אלא את האחרונה.
מה ההפך של TOP ?
לא הבנת אז את ה-SQL שכתבתי
TOP X *שולף* את X הרשומות הראשונות לאחר קביעת סידור מסוים
אם יש לך עמודה מסוג מספור אוטומטי למשל, הרשומה הכי חדשה תהיה הרשומה בעלת המספר הכי גבוה. ברגע שאתה עושה סידור DESC על העמודה הזו אתה עושה שהסדר יופיע מהגדול לקטן (במילים אחרות מהחדש לישן) ואז לאחר מכן שאתה שם TOP X אתה מקבל X הרשומות הכי חדשות בטבלה
מקווה שעכשיו זה מובן
אתה מלך !
חחח בהתחלה זה לא עבד לי בגלל שהעפתי מהמשפט את הDesc , וזה בגלל שאחרי שהכנסתי את הWHERE שלי זה החזיר לי שגיאה.
עכשיו סידרתי את המשפט כמו שצריך :
SELECT TOP 1 fid, fname, fhead FROM fpages where p_id=4 ORDER by fid DESC
והכל עובד מצויין !!
תודה אחי …. אתה איש גדול
שאלה חדשה חם מהתנור
חיפשתי בפורום, בFAQ של האתר, במדריכים ובמאמרים ולא מצאתי מדריך כיצד לבנות מנוע חיפוש לאתר אשר יחפש בתוך מסד הנתונים שלי (Access) ?
האם מאמר כזה קיים באתר ?
בעיקרון
אתה צריך להשתמש בפסוקית where. הנה קישור להדגמה של שאילתת חיפוש כאשר מדובר על מחרוזת:
דוגמה נוספת לחיפוש כל האנשים שקוראים להם 'טל' (ולא כמחרוזת):
name=request.form("name") ' הערך שאתה מקבל מהטופס
select * from users where firstname="&name&" order by id
*בהנחה שהמשתנה name מכיל את הערך טל
אחלה ! תודה .. הצלחתי
בניתי מנוע חיפוש טיפ-טופ ..
תודה
שאלה חדשה-ישנה
זוכרים את השאלה שלי בשרשור הקודם על הצגת נתונים לפי שעה (בין 20:00:00 ל08:00:00) ? אז הבעיה לא בדיוק נפתרה למרות שחשבתי שכך .
להלן הסקריפט שבניתי :
<%
'create recordset to show database categories
Dim Conn, rsCatalog, i, time
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConString
Set rsCatalog = Conn.Execute("SELECT * FROM pinot")
i=hour(time)
if (i>=20) or (i<=22) then
While not rsCatalog.EOF
%>
<%= rsCatalog("pname") %>
<%
rsCatalog.MoveNext
Wend
rsCatalog.Close
Set rsCatalog = Nothing
else
response.write "טרם עודכן."
end if
%>
ומדוע עדיין לא עובד לי ?
תודה .
קבלו תיקון
בתוך הלולאה שלי קבעתי שעה בין 20 ל22, קיצר התכוונתי ל :
if (i>=20) or (i<=22) then
סתם לצורך העניין
שאלה בנוגע לפונקצייה שבניתי
בניתי פונקצייה שבעצם תצור לי <BR> בכל פעם שאני שובר שורה .
Function FormatStr(strTemp)
strTemp = Replace(strTemp, chr(13), "")
strTemp = Replace(strTemp, chr(10), "<br>")
strTemp = Replace(strTemp, "<br><br><br><br>", "<br><br>")
strTemp = Replace(strTemp, "<br><br><br>", "<br><br>")
strTemp = Replace(strTemp, chr(34), "'")
strTemp = Replace(strTemp, "(", "(")
strTemp = Replace(strTemp, ")", ")")
FormatStr = strTemp
End Function
ובשליפת נתון שלי מהמסד עשיתי כך :
<%= rs(FormatStr("fbody")) %>
וזה לא עובד לי …
כיצד אוכל לתקן ?
לא משנה הסתדרתי
ביטלתי את הפונקצייה כי זה רק שדה אחד שאני רוצה לשלוף ועשיתי כך :
<%= Replace(rs("fbody"),chr(13),"<br>") %>
שאלה חדשה ..
יש לי מסד נתונים (ובכלל מערכת שלמה) שבעצם מאפשרת להוסיף משתמשים למערכת ולהצפין דפים מסויימים אך ורק עבור המשתמשים שרשומים .
נגיד, באמצעות חשבון משתמש כלשהו אני מתחבר לדף של הוספת נתונים (למסד נתונים אחר) ואני רוצה שinput (של טקסט) יכניס לvalue שלו את שם המשתמש שדרכו אני מכניס את הנתונים .
מה שבעצם אני מחפש זה כיצד לשלוף את שם המשתמש שדרכו אני מחובר ברגע זה ? (myuid זה העמודה של השמות במסד הנתונים [אקסס] שלי) .
כיצד זה אפשרי ?