Det där med databaser tar lite längra att förklara men jag har líte tid att slå ihjäl innan hockeymatchen :D.
produkt.asp?cat=prod&ucat=dockning
Det jag tror att detta betyder är en lista på Kategorier och produkter. cat = överkategori, ucat = underkategori ?
eller om ucat kanske är lika med produkten ?
I vilket fall som helst så behöver du ju en databas med olika tabeller.
Ex.
Products:
Product_Id Räknare
Product_Name 'Char eller textfält
Product_Belongsto_Ucat
(Oså lite andra fält som beskriver produkten i sig.)
uCat
uCatId 'Räknare
uCat_Name 'Char eller textfält
uCat_BelongstoCat_id
Cat
Cat_Id 'Räknare
Cat_Name 'Char
man kan göra index istället för att lägga in relationerna direkt i entiteterna.
En sak som kan förbättra allt är att istället för ha namnen i querystringen "cat=prod" så är det mer optimalt för sökningarna i databasen med "cat=1" så vet ju databasen sedan om att det är prod 1 betyder eller liknande.
Så först har vi en sida som listar alla överkategorier.
Chansar på att du använder Ms Accsess annars är det bara att byta ut databas kopplingen.
Sida: categories.asp
<%
Dim objConn, objRs, strSql
' Databas kopplingen
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;")
strSql = "Select * From Cat Order by Cat_Name;"
Set Rs = objConn.Execute(strSql)
Do until Rs.Eof
Response.Write "<a href=""ucat.asp?cat="&Rs("cat_id")&""">"&Rs("Cat_Name")&"</a><br>"
""
Rs.MoveNext()
Loop
Set Rs = Nothing
objConn.Close()
objConn = Nothing
%>
Nästa sida fungerar ungefär likadant bara det att vi tar emot ett värde från querystringen och sätter ett vilkor i selectsatsen samt ändrar lite på den. Plus att vi byternamn på filen som det skall länkas till.
Sida: ucat.asp
<%
Dim objConn, objRs, strSql, intCatId
intCatId = CInt(Request.QueryString("cat"))
if IsNumeric(intCatId) then
' Databas kopplingen
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;")
strSql = "Select * From Ucat where uCat_BelongstoCat_id = "&intCatId&" Order by Cat_Name;"
Set Rs = objConn.Execute(strSql)
Do until Rs.Eof
Response.Write "<a href=""product.asp?cat="&intCatId&"&ucat="&Rs(uCat_Id)&""">"&Rs("uCat_Name")&"</a><br>"
""
Rs.MoveNext()
Loop
objConn.Close()
Else
Response.Redirect("cat.asp")
End If
%>
Sida 3 fungerar exakt likadant men där så radar du upp alla produkter istället.. hoppas att du klarar att göra den själv efter detta.