צפיות
תשובות
בעיה בשליפה אקראית מה-DB
שלום לכולם!
יש לי פה איזו בעיונת עם השליפה האקראית מה-DB. מה שאני רוצה זה שליפה אקראית של ציטוט ומספר של "יוצר" הציטוט מטבלה אחת ושם של ה"יוצר" מטבלה אחרת איפה שמספר ה-ID של "היוצר" שווה למספרו שבטבלת הציטוטים. זה הקוד בו אני משתמש:
<%
dim connQuote
set connQuote=Server.CreateObject("ADODB.connection")
connQuote.open "dsn=mydsn"
dim rsQuote, sqlQuote, rnd_num, quote_text, quote_author
set rsQuote=Server.CreateObject("ADODB.recordset")
sqlQuote="SELECT quotes.quote_id, quotes.quote_text, quotes.quote_author, quotes_authors.author_id, quotes_authors.author_name FROM quotes INNER JOIN quotes_authors ON quotes.quote_author = quotes_authors.author_id"
rsQuote.Open sqlQuote, connQuote,3,1
quote_author=rsQuote("author_name")
Randomize
rnd_num = int(rsQuote.RecordCount * rnd())
rsQuote.Move(rnd_num)
Response.Write "<span class='submit-recipe-header'>" & "Random quote:<BR>" & "</span>"
Response.Write rsQuote(1) & " – " & quote_author
Response.Write "<BR><BR>"
rsQuote.Close
set rsQuote=nothing
connQuote.Close
set connQuote=nothing
%>
מה שיוצא לי זה שאכן נשלף ציטוט אקראי אחד, הוא משתנה בריענון הדף, אך "היוצר" תמיד נשאר אותו אחד, הראשון שמופיע בטבלת היוצרים.
איך אני יכול לגרום לכך שיופיע שמו של "היוצר" ליד הציטוט שלו???
תודה רבה מראש!
2 תשובות
הממ…
נתחיל בזה שאתה שולף את כל הרשומות מה DB ולא רשומה בודדת.
ונמשיך בזה שאתה מקבל תמיד את אותו "יוצר" בגלל שאתה נותן ערך למשתנה מה recordset לפני שאתה מעביר את הסמן לשורה אקראית…
במקום
quote_author=rsQuote("author_name")
Randomize
rnd_num = int(rsQuote.RecordCount * rnd())
rsQuote.Move(rnd_num)
תכתוב
Randomize
rnd_num = int(rsQuote.RecordCount * rnd())
rsQuote.Move(rnd_num)
quote_author=rsQuote("author_name")
אכן זו היתה הטעות…
תודה רבה על העזרה, עכשיו זה עובד נהדר!