webForumDet fria alternativet

Problemmed ett forum!

ASP

20 svar · 357 visningar · startad av trexter.com

Medlem sedan apr. 20021 203 inlägg
Frågan#1

Jag har i min tabell Forums, följande kolummer:

1. F_ForumID (Primär och räknare)
2. F_TitleofForum
3. F_Priority

Följande kolummer har jag i min tabell Categories:

1. C_CategoryID (Primär och räknare)
2. C_TitleofCategory
3. C_Priority
4. C_ForumID

Det jag vill är att posterna i F_TitleofForum ska loopas igenom och att de ska ordnas efter sin prioritetssiffra. Detta har jag lyckats med men sedan kommer problemen.

Jag vill att man under varje post i F_TitleofForum ska loopa ut de tillhörande kategorierna. Det vill säga så här (prototyp):

F_TitleofForum (1 i prioritet, första posten)
C_TitleofCategory (1 i prioritet, första posten som har C_ForumID som är lika med F_ForumID)
C_TitleofCategory (2 i prioritet, andra posten som har.....)
F_TitleofForum (2 i prioritet, andra posten)

osv.... om ni inte förstår så fråga! Min nuvarande kod, som jag inte riktigt själv klarar av att modda ser ut så här:

<!-- #include virtual="../inc/adovbs.inc" -->

<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\trexter\databas\db2002.mdb" 
Set RecSet = Server.CreateObject("ADODB.Recordset")
Set RecSet2 = Server.CreateObject("ADODB.Recordset")

ShowForums = "SELECT * FROM Forums ORDER BY F_Priority"

RecSet.Open ShowForums, Connect, adOpenStatic, adLockOptimistic

Do Until RecSet.EOF %>
	
<%=RecSet("F_TitleofForum")%> <br>

<%
RecSet.MoveNext
Loop

RecSet.Close
Connect.Close
%>
Medlem sedan apr. 20021 203 inlägg
#2

Jag vill alltså ha det som på vilket annat forum som helst, t.ex:
http://finalworld.tk

Ingen som kan hjälpa mig? :(

:)

Medlem sedan juni 20019 519 inlägg
#3

vad är det du vill att vi ska göra??? layouten, koderna??? Nu ska jag säga något som alla andra säger till mej:

"Börja själv om du fastna med något så posta här" - (tror ett citat av @nders)

Medlem sedan apr. 20021 203 inlägg
#4

Nä, jag vill inte att ni ska göra forumet åt mig, då kan jag ju lika gärna ladda ner ett färdigt! Men är det någon som vet var jag kan kolla eller vad jag måste lära mig för att klara av problemet?

Jag måste liksom jämföra mellan 2 rabeller...

Medlem sedan feb. 200112 078 inlägg
#5

Detta är helt otestat. Jag tog mig friheten att ändra öppningen av databasen och modifiera din kod en aning. Byt ut allt som du skrev ovan mot detta. Denna metod förutsätter att F_ForumID har datatypen "tal" i databasen.

<%
'öppna databasen mot forumen
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\trexter\databas\db2002.mdb" 
SQLforum = "SELECT * FROM Forums ORDER BY F_Priority"
set recset = connect.execute(SQLforum)

Do Until recset.EOF 
	
	'skriv ut forumets namn
	response.write " + " & recset("F_TitleofForum") & "<br>"

	'öppna kategorier under forumet
	SQLforumSub = "SELECT * FROM Categories WHERE C_ForumID = " & recset("F_ForumID") & " ORDER BY C_Priority"
	set subRecset = connect.execute(SQLforumSub)
	
	'finns det underkategorier överhuvudtaget?
	if not subRecSet.eof then
		'isåfall, loopa ut dem och response.write på varje
		do until subRecSet.eof	
			response.write "&nbsp;&nbsp; -> " & subRecset("C_TitleofCategory") & "<br>"
		subRecset.movenext
		loop
	end if

	'stäng
	subRecset.close
	set subRecset = nothing

RecSet.MoveNext
Loop

'stäng
RecSet.Close
Connect.Close
%>
Medlem sedan apr. 20021 203 inlägg
#6

Tack, Överrida! Frågan är bara vilket som är bäst, Inner Joins (som jag hittade nyss) eller så som du visa.

Hmm, jag ska testa och se! Tack!

:)

Medlem sedan apr. 20021 203 inlägg
#7

-

Medlem sedan mars 20002 836 inlägg
#8

JOINS är att föredra i detta läge.
Nestlade recordset är FÖRBJUDET!!! :e

cya,
PatrikB

Medlem sedan feb. 200112 078 inlägg
#9

PatrikB > :r ;)

Fulkod. :e

Medlem sedan juni 20019 024 inlägg
#10

PatrikB skrev:

JOINS är att föredra i detta läge.
Nestlade recordset är FÖRBJUDET!!! :e

cya,
PatrikB

Verifieras! :OO :birp

Medlem sedan apr. 20021 203 inlägg
#11

Någon som vet vad som är fel på denna koden?

<!-- #include virtual="../inc/adovbs.inc" -->

<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\trexter\databas\db2002.mdb" 
Set RecSet = Server.CreateObject("ADODB.Recordset")

ShowForums = "SELECT * FROM Forums ORDER BY F_Priority"

RecSet.Open ShowForums, Connect, adOpenStatic, adLockOptimistic

Do Until RecSet.EOF
%>
	
<%=RecSet("F_TitleofForum")%> <br>
<%
	Set RecSet2 = Server.CreateObject("ADODB.Recordset")
	ShowCategories = "SELECT * FROM Categories WHERE C_ForumID = " & <%=RecSet(F_ForumID)%> & " ORDER BY C_Priority DESC"
	If Not RecSet2.EOF Then
		do until RecSet2.EOF
			response.write "   -> " & RecSet2("C_TitleofCategory") & "<br>"
		RecSet2.MoveNext
		Loop
	End if
	
RecSet.MoveNext
Loop

RecSet.Close
Connect.Close
%>
Medlem sedan juni 200032 967 inlägg
#12

Börja med att tala om vad som är trasigt.

Medlem sedan nov. 20017 144 inlägg
#13

Varför har du <%=RecSet(F_ForumID)%> i selecten?
Vad har du för värde där?

Joins låter smart tycker jag i alla fall... :)

Medlem sedan juni 200032 967 inlägg
#14

Bra där, Jesper! Vaket! :)

	ShowCategories = "SELECT * FROM Categories WHERE C_ForumID = " & RecSet(F_ForumID) & " ORDER BY C_Priority DESC"

Du kan inte ha asp-avgränsare inne i ett asp-block.

Mvh,

Medlem sedan apr. 20021 203 inlägg
#15

Ok, tackar, tackar. Jo, jag vet. Joins hade kanske varit bättre men sedan så funderade jag, övervägde och beslutade mig för att det är över min förmåga! :)

Förstår inte hur koden skulle se ut i så fall..

Medlem sedan apr. 20021 203 inlägg
#16

Hmm.. det blev inte riktigt rätt. Koden:

<!-- #include virtual="../inc/adovbs.inc" -->

<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\trexter\databas\db2002.mdb" 
Set RecSet = Server.CreateObject("ADODB.Recordset")

ShowForums = "SELECT * FROM Forums ORDER BY F_Priority"

RecSet.Open ShowForums, Connect, adOpenStatic, adLockOptimistic

Do Until RecSet.EOF
%>
	
<%=RecSet("F_TitleofForum")%> <br>
<%
	Set RecSet2 = Server.CreateObject("ADODB.Recordset")
	ShowCategories = "SELECT * FROM Categories WHERE C_ForumID = " & RecSet("F_ForumID") & " ORDER BY C_Priority DESC"
[b]	RecSet2.Open ShowCategories, Connect, adOpenStatic, adLockOptimistic [/b]
	If Not RecSet2.EOF Then
		Do Until RecSet2.EOF
			Response.Write "   -> " & RecSet2("C_TitleofCategory") & "<br>"
		RecSet2.MoveNext
		Loop
		RecSet2.Close
	End if
	
	
RecSet.MoveNext
Loop

	
RecSet.Close
Connect = Nothing
Connect.Close
%>

Felmeddelande (hela sidan):

Programmering

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/forum/default2.asp, line 18

Medlem sedan nov. 20017 144 inlägg
#17

Vilken är line 18?

Medlem sedan apr. 20021 203 inlägg
#18

Raden i fel stil!

Medlem sedan apr. 20021 203 inlägg
#19

Snälla, ingen som kan hjälpa kig? Nu har jag ju faktiskt lite kod i bagaget.. :)

Medlem sedan mars 20015 287 inlägg
#20

Är det samma typ av fält: C_ForumID samt F_ForumID?
Kanske att den ena måste konverteras!?!

714 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
585 ms — ändringar (db)