webForumDet fria alternativet

Titta hit någon.

ASP

29 svar · 1 037 visningar · startad av cgi

Medlem sedan jan. 2000371 inlägg
Frågan#1

Förstår inte riktigt vad som är fel med denna kod, den skriver ut alla inlägg men 100ggr dubbelt, med en rubrik och 100 likadana svar, vad är fel.?

<!-- #INCLUDE FILE="config.asp" -->
<%
Dim connection
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "DSN=xxx-forum;Password=xxx"

Set rs2 = connection.Execute("SELECT * FROM Forum2 WHERE cInt(Id) = '" & Request.QueryString("Forum") & "'")
forumID=rs2("ID")
forumnamn=rs2("Namn")
foruminfo=rs2("info")
%>

<%call disp(0, 0)%> <%
Sub disp(id,level)
if level = 0 then
Set rs = connection.Execute("SELECT * FROM Forum where Svara = '" & cStr(id) & "' AND Forum='" & Request.QueryString("forum") & "'order by ID DESC")
else
Set rs = connection.Execute("SELECT * FROM Forum where Svara = '" & cStr(id) & "' AND Forum='" & Request.QueryString("forum") & "'order by ID")
end if
do until rs.eof

ID = rs("ID")
Namn = rs("Namn")
Email = rs("Email")
Forum=rs("Forum")
Rubrik = rs("Rubrik")
Tid2 = rs("Tid")

if level > 0 then
str=""
for j=1 to level
str=str & "<img src=""blank.gif"" border=0>"
next
end if

if level=0 then str="<img src=""top.gif"">"
if level > 0 then str=str & "<img src=""top2.gif"">"
%> <%=str%><a href="las_forum.asp?id=<%=ID%>&forum=<%=Forum%>"><%=Rubrik%></a> <%=av%>   <%=Namn%>   <%=Tid%><br>
<%
call disp(ID, level+1)
rs.movenext
loop
End Sub

%>

[Redigerat av cgi den 27 sep 2000]

Medlem sedan mars 2000167 inlägg
#2

AND går väl inte...ska det inte vara OR?

Set rs = connection.Execute("SELECT * FROM Forum where Svara = '" & cStr(id) & "' OR Forum='" & Request.QueryString("forum") & "'order by ID DESC")

------------------
http://andiee.cjb.net
"I met my maker, I made him cry"

[Redigerat av Andiee den 27 sep 2000]

Medlem sedan dec. 19996 721 inlägg
#3

Nope. Det mesta ser rätt ut.

"WHERE cInt(Id)='" blir lite lustigt. Du ska inte behöva typkonvertera något, och konverterar ¨du till inetegr, så ska du inte ha några fnuttar. Konstigt att den går igenom, överhuvud taget.

"SELECT * FROM Forum2 WHERE Id = " & Request.QueryString("Forum")

borde det vara...

..eller har du "Svara" och "ID" som text, och inte tal. Varför i så fall? Tänk på att du kan sätta bredden på blank.gif, i stället för att repetera den.

mvh

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

Medlem sedan mars 20002 836 inlägg
#4

... och sätter man vidden så bör man oxå tänka på att sätta höjden .... annars ökar höjden när man ökar bredden med samma proportion som bredd ökningen,

cya,
PatrikB

------------------
=================================
** ZWGdesign **
=================================

Medlem sedan jan. 2000371 inlägg
#5

Hmm... får nu upp: Syntaxfel i sträng i frågeuttrycket 'Id = 2''.

Medlem sedan dec. 19996 721 inlägg
#6

Du verkar ha fel datatyper....

Medlem sedan jan. 2000371 inlägg
#7

Tror jag inte,

Id = Räknare
Svara = Tal

är inte detta rätt eller.?

Medlem sedan dec. 19996 721 inlägg
#8

Jo, det är rätt. Hur ser SQL-frågan ut nu. Skriv ut den med response.write i stället för att exekvera den.

Medlem sedan jan. 2000371 inlägg
#9

Har helt kört fast nu, har ändrat lite i koden och den ser nu ut som denna:

<%
Dim connection
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "DSN=xxx-forum;Password=xxx"

SQLStmt = "SELECT * FROM Forum where Id = " & Request.QueryString("Forum")
Set RS2 = Connection.Execute(SQLStmt)

forumID=RS2("ID")
forumnamn=RS2("fldNamn")
foruminfo=RS2("fldinfo")
%>

<a href="nytt.asp?forum=<%=forumID%>&Svara=0">Nytt inlägg</a>

<%
call disp(0, 0)
%> 

<%
Sub disp(id,level)
If level = 0 then
SQL = "SELECT * FROM Forum2 where fldSvara = '" & cStr(id) & "' AND fldForum='" & Request.QueryString("forum") & "'order by fldID DESC"
Set RS3 = connection.Execute(SQL)
Else
SQL = "SELECT * FROM Forum2 where fldSvara = '" & cStr(id) & "' AND fldForum='" & Request.QueryString("forum") & "'order by fldID"
Set RS4 = connection.Execute(SQL)
End If
Do Until RS.EOF

ID = RS("fldID")
Namn = RS("fldNamn")
Email = RS("fldEmail")
Forum = RS("fldForum")
Titel = RS("fldTitel")
Tid2 = RS("fldTid")

If level > 0 then
str=""
for j=1 to level
str=str & "<img src=""blank.gif"" border=0>"
Next
End if

If level=0 then str="<img src=""1.gif"">"
If level > 0 then str=str & "<img src=""2.gif"">"
%><%=str%>
<a href="las_forum.asp?id=<%=ID%>&forum=<%=Forum%>"><%=Titel%></a> <%=av%>&nbsp;&nbsp;&nbsp;<%=Namn%>&nbsp;&nbsp;&nbsp;<%=Tid2%><br>
            <%
call disp(ID, level+1)
RS.MoveNext
Loop
End Sub

%>

nu får jag upp att något typblandningsfel ligger på denna rad, Set RS3 = connection.Execute(SQL).
Vad är felet.??

Medlem sedan mars 20002 836 inlägg
#10

Hello,

säger det jag med...hur ser SQLsträngen ut?

du kan skriva ut den innan du kör connection.execute med

Response.Write SQLstmt

cya,
PatrikB

------------------
=================================
** ZWGdesign **
=================================

Medlem sedan dec. 19996 721 inlägg
#11

Du har typblandningsfel. Ta bort enkelfnuttarna.

Medlem sedan jan. 2000371 inlägg
#12

Nope, det har jag redan provat, funkar inte.

Medlem sedan mars 20002 836 inlägg
#13

Vad är fldSvara av för fälttyp??

//PatrikB

------------------
=================================
** ZWGdesign **
=================================

Medlem sedan mars 20002 836 inlägg
#14

ahaa,
läste inte så noga i föregående inlägg,

fldSvara är alltså av typen - Tal

varför då göra det id till text.

Tror att det hjälper om du tar bort fnuttarna och cStr runt variabeln id

cya,
PatrikB

------------------
=================================
** ZWGdesign **
=================================

Medlem sedan jan. 2000371 inlägg
#15

Tog bort fnuttarna samt cStr runt id, får upp fel att operator saknas.

Medlem sedan jan. 2000371 inlägg
#16

Ingen som vet.??

Medlem sedan dec. 19998 577 inlägg
#17

Det borde ju stå i felmeddelandet vart operatorn fattas... visa hela felmeddelandet så skall vi se om vi kan hjälp dig...

Mvh, Vide

------------------
Kom hem till mig...

Medlem sedan jan. 2000371 inlägg
#18

Oki här kommer den:

ADODB.Recordset.1 error '80004005'

Syntaxfel (operator saknas) i frågeuttrycket 'fldSvara='.

/2/forum.asp, line 26

Medlem sedan dec. 19998 577 inlägg
#19

... och vad får du om du skriver ut sin SQLsats med Response.write före det att du exekverar den...

Det verkar som om fältet fldSvara tilldelas något värde...

Mvh, Vide

------------------
Kom hem till mig...

Medlem sedan jan. 2000371 inlägg
#20

Vide, hur menar du då.?

319 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
177 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
149 ms — ändringar (db)