Hvis du ALTID vil have listen med produkter udskrevet og så i de tilfælde hvor brugeren er logget ind og vil have dennes produkter udskrivet nedenunder (eller i en ny liste et andet sted på siden), så skal du (i princippet) udføre to kald til databasen. Noget á la dette:
sql = "SELECT * " & _
"FROM produkter " & _
"WHERE kategori = " & request.querystring("kategori")
set rs = conn.Execute(sql)
' ... gennemløb resultatet og udskriv produkt-info ...
rs.close
if not isempty(session("brugerid")) then
sql = "SELECT * " & _
"FROM Produkter " & _
"INNER JOIN Produkter_kunder ON Produkter.Id = Produkter_kunder.ProduktID " & _
"WHERE Produkter.Kategori = " & request.querystring("kategori") & " " & _
"AND Produkter_kunder.CustomerID = " & session("BrugerID")
set rs = conn.Execute(sql)
' ... gennemløb resultatet og udskriv produkt-info ...
rs.close
conn.close
end if
Jeg er godt nok noget i tvivl om hvordan dine data er skruet sammen, for det kunne også godt forstås således, at din produktdatabase indeholder et sæt produkter som er generelle og så nogle produkter som kun er synlige for enkelte kunder. Hvis dette er tilfældet, så skal du over i en lidt anden forspørgsel. Den kunne se således ud:
if isempty(session("BrugerID")) then
' brugeren er ikke logget ind, så udtræk de produkter der
' IKKE er tilknyttet nogen kunder
sql = "SELECT * " & _
"FROM Produkter " & _
"LEFT JOIN Produkter_kunder ON Produkter.Id = Produkter_kunder.ProduktID " & _
"WHERE Produkter.Kategori = " & request.querystring("kategori") & " " & _
"AND NOT EXISTS (" & _
"SELECT * " & _
"FROM Produkter_kunder " & _
"WHERE ProduktID = Produkter.Id " & _
")"
else
' find alle produkter der ikke har nogen kunder tilknyttet
' eller som har den aktuelle kunde tilknyttet
sql = "SELECT * " & _
"FROM Produkter " & _
"LEFT JOIN Produkter_kunder ON Produkter.Id = Produkter_kunder.ProduktID " & _
"WHERE Produkter.Kategori = " & request.querystring ("kategori") & " " & _
"AND (" & _
"Produkter_kunder.CustomerID = " & session("BrugerID") & " " & _
"OR Produkter_kunder.CustomerID IS NULL " & _
")"
end if
set rs = conn.Execute(sql)
' ... gennemløb resultatet og udskriv produkt-info ...
rs.close
conn.close