webForumDet fria alternativet

Jobbigt fel (Syntax)

ASPur ASP

12 svar · 370 visningar · startad av DiDjo

Medlem sedan nov. 2002544 inlägg
Frågan#1

Hmmm denna kod e nog krånglig! Men om jag förklarar hur den fungerar så är det nog lättare:

sql = "SELECT topics.*, forums.*, statusname, statuslevel, moderator, users.posts FROM (status INNER JOIN users ON status.statusid = users.status) INNER JOIN ((forums INNER JOIN moderators ON forums.forumid = moderators.moderatorforum) INNER JOIN topics ON forums.forumid = topics.forum) ON users.username = topics.by WHERE topics.id = " & id
Set rsRoot = Server.CreateObject("ADODB.Recordset")
33-->rsRoot.Open sql, conn, 3, 3

Jag hade tabelen users förut och kolumnen username! Och nu vill jag byta till tabelen anv coh kolumnen anv! Hur ändrar jag den då?
Felet blir när jag ändrade själv:

Microsoft JET Database Engine error '80040e14' 

Syntax error in JOIN operation. 

/testing/!forum/philboard_read.asp, line 33
Medlem sedan dec. 200012 464 inlägg
#2
SELECT topics.*, forums.*, statusname, statuslevel, moderator, users.posts 
FROM (((status INNER JOIN users ON status.statusid = users.status) 
INNER JOIN topics ON users.username = topics.by)
inner join forums on topics.forum = forums.forumid)
INNER JOIN moderators ON forums.forumid = moderators.moderatorforum
WHERE topics.id = " & id
Medlem sedan nov. 2002544 inlägg
#3

ööö vad e skillnaden?

Medlem sedan nov. 2002544 inlägg
#4

Fel:

Microsoft VBScript compilation error '800a03fd' 

Expected 'Case' 

/testing/forum/philboard_read.asp, line 31 

SELECT topics.*, forums.*, statusname, statuslevel, moderator, users.posts
Medlem sedan mars 20015 287 inlägg
#5

En rad...

Medlem sedan nov. 2002544 inlägg
#6

samma fel:

Microsoft VBScript compilation error '800a03fd' 

Expected 'Case' 

/testing/forum/philboard_read.asp, line 31 

SELECT topics.*, forums.*, statusname, statuslevel, moderator, users.posts FROM (((status INNER JOIN users ON status.statusid = users.status) INNER JOIN topics ON users.username = topics.by)inner join forums on topics.forum = forums.forumid) INNER JOIN moderators ON forums.forumid = moderators.moderatorforum WHERE topics.id = " & id
-------^
Medlem sedan mars 20015 287 inlägg
#7

Kanske:

sql = "SELECT topics.*, forums.*, statusname, statuslevel, moderator, users.posts FROM " &_
" (((status INNER JOIN users ON status.statusid = users.status)" &_
" INNER JOIN topics ON users.username = topics.by)" &_
"inner join forums on topics.forum = forums.forumid)" &_
" INNER JOIN moderators ON forums.forumid = moderators.moderatorforum WHERE topics.id = " & id
Medlem sedan nov. 2002544 inlägg
#8

Nu är jag tillbaka till början igen!! Den säger att den inte hittar users! Vilket den inte ska! Eftersom jag underade hur man ändrade FRÅN tabelen users TILL tabelen anv och från kolumnen users till kolumnen anv!

Medlem sedan mars 20015 287 inlägg
#9

Hm...

sql = "SELECT topics.*, forums.*, statusname, statuslevel, moderator, anv.posts FROM " &_
" (((status INNER JOIN anv ON status.statusid = anv.status)" &_
" INNER JOIN topics ON anv.username = topics.by)" &_
"inner join forums on topics.forum = forums.forumid)" &_
" INNER JOIN moderators ON forums.forumid = moderators.moderatorforum WHERE topics.id = " & id

Så där eller?

Medlem sedan nov. 2002544 inlägg
#10

Fel:

Microsoft JET Database Engine error '80040e10' 

No value given for one or more required parameters. 

/testing/forum/philboard_read.asp, line 37

Om jag ger er alla ASP kod runt de där istället:

<%
Option Explicit
Dim sql, rsRoot, rsReplies, count, id, rsUser, username, level, recordnum, cellbgcolor, se, rs, rs2, rs3, rs4, by, posts, rs1, addera, title, bye, messagecount, messagepage, lastpage, moderator, forumid, locked, repliesdisplay

%><!--#include file="conn.asp"--><%
Set rs1 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv where id='"&session("id")&"'"
rs1.Open Addera, Conn, 3, 3

username = Rs1("anv")
level = Request.Cookies("level")
recordnum = Request.QueryString("recordnum")

repliesdisplay = 20

if recordnum = "" then recordnum = 0 end if

id = Request.QueryString("id")
%>

<%
se=request("se")
if se="" then
	se=session("id")
end if
%>
<%
sql = "SELECT topics.*, forums.*, statusname, statuslevel, moderator, anv.posts FROM " &_
" (((status INNER JOIN anv ON status.statusid = anv.status)" &_
" INNER JOIN topics ON anv.username = topics.by)" &_
"inner join forums on topics.forum = forums.forumid)" &_
" INNER JOIN moderators ON forums.forumid = moderators.moderatorforum WHERE topics.id = " & id
Set rsRoot = Server.CreateObject("ADODB.Recordset")
rsRoot.Open sql, conn, 3, 3

moderator = rsRoot("moderator")
forumid = rsRoot("forumid")
locked = rsRoot("locked")

sql = "SELECT replies.*, statusname, statuslevel, users.icon, users.posts FROM (status INNER JOIN anv ON status.statusid = users.status) INNER JOIN replies ON users.username = replies.by WHERE replies.root = " & id & " ORDER BY date, time"
Set rsReplies = Server.CreateObject("ADODB.Recordset")
rsReplies.Open sql, conn, 3, 3

if not rsReplies.EOF then
  rsReplies.Movefirst

  for count = 1 to repliesdisplay
	rsReplies.Movenext
	if rsReplies.EOF then
	  exit for
	end if
  next
  
  if not rsReplies.EOF then
	messagecount = rsReplies.Recordcount
  end if
  
  rsReplies.Movefirst
  
end if
%>
<%
Function Smiley(text)

text = server.HTMLEncode(text)
text = Replace(text,vbCrLf,"<br>")
text = Replace(text,"(t)","<img src=""smile/weihnachten031.gif"">")
text = Replace(text,":'(","<img src=""smile/traurig001.gif"">")
text = Replace(text,"(d)","<img src=""smile/smily-sur.gif"">")
text = Replace(text,":D","<img src=""smile/supergrin.gif"">")
text = Replace(text,"(s)","<img src=""smile/stud.gif"">")
text = Replace(text,"(y)","<img src=""smile/smilie_daumen1.gif"">")
text = Replace(text,":=","<img src=""smile/shame.gif"">")

Response.Write text

End Function
%>
Medlem sedan mars 20015 287 inlägg
#11

Jag sitter mest o flummar här nu, kanske ute på helt fel spår, men är du säker på att du har något värde i:

se=request("se")
if se="" then
se=session("id")

Medlem sedan nov. 2002544 inlägg
#12

ja! Det är ens ID man får där! Den får man när man loggar in! Och för att slippa skriva session("id") längre ner så tar jag den där se här uppe...

Medlem sedan nov. 2002544 inlägg
#13

Jag löste det med denna kod:

sql = "SELECT topics.*, forums.*, statusname, statuslevel, moderator, anv.posts FROM (status INNER JOIN anv ON status.statusid = anv.forumstat) INNER JOIN ((forums INNER JOIN moderators ON forums.forumid = moderators.moderatorforum) INNER JOIN topics ON forums.forumid = topics.forum) ON anv.anv = topics.by WHERE topics.id = " & id
Set rsRoot = Server.CreateObject("ADODB.Recordset")
rsRoot.Open sql, conn, 3, 3
141 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)