webForumDet fria alternativet

Hur kan man....

ASPur ASP

10 svar · 201 visningar · startad av jimpa

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

Hej,

Håller på med ett litet script (typ forum). Jag har två aktuella fält i db.
"Msg" och "Answer". Är det någon som har ett ex. på hur jag kan skriva koden så att rubrikerna kan visas i följande ordning:

Rubrik1(Msg)
Svar1 till Rubrik1(Answer)
Svar2 till Rubrik1(Answer)
Svar3 till Rubrik1(Answer)
Rubrik2(Msg)
Svar1 till Rubrik2(Answer)
Svar2 till Rubrik2(Answer)
Svar3 till Rubrik2(Answer)
Svar4 till Rubrik2(Answer)
Rubrik3(Msg)
Svar1 till Rubrik3(Answer)
Svar2 till Rubrik3(Answer)
Svar3 till Rubrik3(Answer)
Svar4 till Rubrik3(Answer)
osv....

Mvh
Jimmy

Medlem sedan juni 20019 024 inlägg
#2

Menar du någonting i stil med...

SELECT msg, answer FROM tabell1, tabell2 WHERE answer_ID = msg_ID AND msg_ID = 3

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

[Redigerat av Pace den 26 dec 2001]

Medlem sedan jan. 2001361 inlägg
#3

Hej,

Nja problemet är inte hur jag hämtar ur db utan hur ja skriver ut det på sidan, självaste loopen.

Hoppas ni förstår vad jag är ute efter

Mvh
Jimpa

Medlem sedan juni 20019 024 inlägg
#4

Hur visar du sidan, med matriser (getrows) eller med recordset? (rs.movenext)

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

Medlem sedan jan. 2001361 inlägg
#5

Hej,

Eftersom den här delen på sidan ännu inte finns och kommer att bli en del för sig själv så är jag öppen för båda alternativen. Kanske ska nämna att rs.MoveNext känns mest bekant.

Mvh
Jimpa

Medlem sedan jan. 2001361 inlägg
#6

Hej,

Jag försöker igen..
Jag har denna SQL-sats för koppla ihop 2st tabeller:

SQL = "SELECT * FROM ScriptComments INNER JOIN ScriptReplies ON ScriptComments.sComment_ID = ScriptReplies.sReplies_commentID WHERE ScriptComments.sComment_scriptID = " & ID & " ORDER by ScriptComments.sComment_ID DESC, ScriptReplies.sReplies_commentID DESC"

Nu vill jag alltså skriva ut ev. data på följande sätt:

Rubrik1
Svar1 till Rubrik1
Svar2 till Rubrik1
Svar3 till Rubrik1
Rubrik2
Svar1 till Rubrik2
Svar2 till Rubrik2
Svar3 till Rubrik2
Svar4 till Rubrik2
Rubrik3Svar1 till Rubrik3
Svar2 till Rubrik3
Svar3 till Rubrik3
Svar4 till Rubrik3
osv....

Har testat lite med det här:

 <!--#include file="Conn.asp"-->
<%
ID = Request.QueryString("ID")

SQL = "SELECT * FROM ScriptComments INNER JOIN ScriptReplies ON ScriptComments.sComment_ID = ScriptReplies.sReplies_commentID WHERE ScriptComments.sComment_scriptID = " & ID & " ORDER by ScriptComments.sComment_ID DESC, ScriptReplies.sReplies_commentID DESC"

  Set rsComments = Conn.Execute(SQL)
  if rsComments.EOF or rsComments.BOF then
  response.write ""
  else
  Do Until rsComments.EOF
  
  sComment_Subject = rsComments("sComment_Subject")
  sComment_Text = rsComments("sComment_Text")
  sComment_Dte = rsComments("sComment_Dte")
  scommentID = rsComments("sComment_ID")
  
  sReplies_Subject = rsComments("sReplies_Subject")
  sReplies_Dte = rsComments("sReplies_Dte")
  sReplies_ID = rsComments("sReplies_ID")
  
  
  Response.Write = "--> " & sComment_Subject & sComment_Dte & "---ID = " & scommentID & "<br>"
  Response.Write = "-------->>>" & sReplies_Subject & sReplies_Dte & "---ID = " & sReplies_ID & "<br>"

   
  rsComments.MoveNext
  Loop
  end if
%>

När sidan visas blir det så här:

--> Rubrik till Kommentar 12/27/01 12:47:55 PM---ID = 8
-------->>>Re:Rubrik till Kommentar 12/27/01 12:51:39 PM---ID = 5
--> Rubrik till Kommentar 12/27/01 12:47:55 PM---ID = 8
-------->>>Re:Rubrik till Kommentar 12/27/01 12:48:13 PM---ID = 4

Skriver alltså ut samma rubrik flera ggr. :( Hur kan man ändra så som jag vill ha det :q

Ett annat problem:
Om det inte finns några svar till en kommentar, hur kan jag få fram kommentaren. Som SQL-satsen är nu så får jag ju bara fram kommentarer där det finns tillhörande svar.

Mvh

[Redigerat av jimpa den 27 dec 2001]

[Redigerat av jimpa den 27 dec 2001]

[Redigerat av jimpa den 27 dec 2001]

Medlem sedan jan. 2001361 inlägg
#7

Finns det ingen som har något förslag :q :i

Medlem sedan jan. 2001361 inlägg
#8

Trodde aldrig att detta skulle vara så svårt....
Men nog finns det väl "Gurus" på WF??
eller... :00

Medlem sedan dec. 19995 875 inlägg
#9

Såhär menar du kanske?

.id är bara en nyckel, har du någon annan unik identifierare så välj de istället.

xTmp = ""
SQLStmt = "SELECT message.msg, answere.ans FROM message INNER JOIN answere ON message.id = answere.id ORDER BY message.msg, answere.ans"
Set RS = Connection.Execute(SQLStmt)

If RS.EOF Then
	' response.write "blabla"
else
	Do until RS.EOF

		If xTmp <> RS("msg") Then
			response.write "<B>" & RS("msg") & "</B><br>"
		End If

		response.write RS("ans") & "<br>"

	xTmp = RS("msg")	
	RS.MoveNext
	loop
End If

------------------
Mvh
Patrik aka Brimba

[Redigerat av Brimba den 28 dec 2001]

Medlem sedan jan. 2001361 inlägg
#10

Tack för ditt svar... Brimba
Tusen tack!!! :)

Problem nr.2 :(
Om det inte finns några svar till en kommentar, hur kan jag få fram kommentaren. Som SQL-satsen är nu så får jag ju bara fram kommentarer där det finns tillhörande svar.

Vill alltså få det typ så här:

Rubrik1
svar1 till Rubrik1
svar2 till Rubrik1
svar3 till Rubrik1
Rubrik2
(Inga svar till Rubrik2)
Rubrik3
svar1 till Rubrik3
svar2 till Rubrik3
svar3 till Rubrik3

 <!--#include file="Conn.asp"-->
<%
ID = Request.QueryString("ID")
xTmp = ""

SQL = "SELECT ScriptComments.*, ScriptReplies.* FROM ScriptComments INNER JOIN ScriptReplies ON ScriptComments.sComment_ID = ScriptReplies.sReplies_commentID WHERE ScriptComments.sComment_scriptID = " & ID & " ORDER by ScriptComments.sComment_ID DESC, ScriptReplies.sReplies_commentID DESC"
  Set rsComments = Conn.Execute(SQL)
  if rsComments.EOF or rsComments.BOF then
  response.write ""
  else
  Do Until rsComments.EOF
  
  rsComments("sComment_Subject")
  'rsComments("sComment_Text")
  rsComments("sComment_Dte")
  rsComments("sComment_ID")
  
  rsComments("sReplies_Subject")
  rsComments("sReplies_Dte")
  rsComments("sReplies_ID")
  
  If xTmp <> rsComments("sComment_Subject") Then
  Response.Write = "--> " & rsComments("sComment_Subject") & rsComments("sComment_Dte") & "---ID = " & rsComments("sComment_ID") & "<br>"
  End If
  
  Response.Write = "-------->>>" & rsComments("sReplies_Subject") & rsComments("sReplies_Dte") & "---ID = " & rsComments("sReplies_ID") & "<br>"

  xTmp = rsComments("sComment_Subject")
    
  rsComments.MoveNext
  Loop
  end if
%>

Mvh
Jimmy

Medlem sedan mars 20002 836 inlägg
#11

Testa med LEFT JOIN istället för INNER JOIN.

cya,
PatrikB

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

134 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)