Jag vill alltså ha det som på vilket annat forum som helst, t.ex:
http://finalworld.tk
Ingen som kan hjälpa mig? :(
:)
20 svar · 357 visningar · startad av trexter.com
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
%>
Jag vill alltså ha det som på vilket annat forum som helst, t.ex:
http://finalworld.tk
Ingen som kan hjälpa mig? :(
:)
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)
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...
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 " -> " & 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
%>
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!
:)
-
PatrikB skrev:
JOINS är att föredra i detta läge.
Nestlade recordset är FÖRBJUDET!!! :ecya,
PatrikB
Verifieras! :OO :birp
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
%>
Börja med att tala om vad som är trasigt.
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... :)
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,
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..
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
Vilken är line 18?
Raden i fel stil!
Snälla, ingen som kan hjälpa kig? Nu har jag ju faktiskt lite kod i bagaget.. :)
Är det samma typ av fält: C_ForumID samt F_ForumID?
Kanske att den ena måste konverteras!?!