Det må kunne laves bedere
Jeg har en mega kode heruder som jeg selv har lavet, det virker også helt fint, men efter som vores database er vokset meget på det sidste er det blevet meget langsomt... vi har omkring 16000 produkter som den søger igennem...Kan dette ikke laves på en smarter måde ? Altså sådan at den ikke behøver åbne så mange database forbindelser...
<%
request_sog = Request.QueryString("sog")
request_bilid = Request.QueryString("bilid")
form_producentid = Request.Form("form_producentid")
form_tommer = Request.Form("form_tommer")
ingen_produkter_error = "Ingen produkter blev fundet"
ingen_produkter_error_tjek = True
if request_sog = "alu" and form_producentid = "" then
Response.Redirect("default.asp?alu_form_producentid_error=Du skal vælge et mærke.")
end if
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
if request_bilid = "" then
'Response.Redirect("default.asp")
else
sql_bilbase = "SELECT * FROM bilbase where id = '"& request_bilid &"'"
set rs_bilbase = Conn.execute(sql_bilbase)
if rs_bilbase.EOF then
Response.Redirect("default.asp")
else
bilbase_id = rs_bilbase("id")
bilbase_markeid = rs_bilbase("markeid")
bilbase_model = rs_bilbase("model")
bilbase_aar_fra = rs_bilbase("aar_fra")
bilbase_aar_til = rs_bilbase("aar_til")
bilbase_min_alu = rs_bilbase("min_alu")
bilbase_max_alu = rs_bilbase("max_alu")
bilbase_hul_antal = rs_bilbase("hul_antal")
bilbase_hul_afstand = rs_bilbase("hul_afstand")
bilbase_et_max = rs_bilbase("et")
bilbase_et_min = bilbase_et_max - 10
bilbase_hul_afstand = replace(bilbase_hul_afstand,",","")
sql_pgprodukt = sql_pgprodukt & " and tommer >= '"& bilbase_min_alu &"' and tommer <= '"& bilbase_max_alu &"' and hul_antal = '"& bilbase_hul_antal &"' and hul_afstand = '"& bilbase_hul_afstand &"'"
'if form_bilmodeller_et_alle = "True" then
sql_pgprodukt = sql_pgprodukt & " and et >= '"& bilbase_et_min &"' and et <= '"& bilbase_et_max &"'"
'end if
end if
rs_bilbase.close
set rs_bilbase = nothing
set sql_bilbase = nothing
end if
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
if form_producentid <> "" then
sql_pgprodukt = sql_pgprodukt & " and producentid = '"& form_producentid &"'"
end if
if form_tommer <> "" then
sql_pgprodukt = sql_pgprodukt & " and tommer = '"& form_tommer &"'"
end if
sql_pgprodukt_start = "SELECT * FROM pgprodukt where katid = '54' "
sql_pgprodukt_exe = sql_pgprodukt_start & sql_pgprodukt &" group by tommer order by tommer"
'''''''''' GROUP BY TOMMER START ''''''''''
set rs_pgprodukt = Conn.execute(sql_pgprodukt_exe)
if rs_pgprodukt.EOF then
if ingen_produkter_error_tjek = True then
Response.Write ingen_produkter_error
ingen_produkter_error_tjek = False
end if
else
Do Until rs_pgprodukt.EOF
pgprodukt_id = rs_pgprodukt("id")
pgprodukt_tommer = rs_pgprodukt("tommer")
'''''''''' PRIS START ''''''''''
sql_pgfirma_tommer = "select * from pgfirma where produktid='"& pgprodukt_id &"' and forhandler_id = '2108'"
Set rs_pgfirma_tommer = Server.CreateObject("ADODB.Recordset")
rs_pgfirma_tommer.open sql_pgfirma_tommer, conn, 1, 3
if rs_pgfirma_tommer.EOF then
vis_falg_tommer = False
else
vis_falg_tommer = True
end if
rs_pgfirma_tommer.Close
Set rs_pgfirma_tommer = Nothing
Set sql_pgfirma_tommer = Nothing
'''''''''' PRIS SLUT ''''''''''
' Tjekker om der er priser fra BigWheels på nogle af fælgene (Tommer)
if vis_falg_tommer = "False" then
if ingen_produkter_error_tjek = True then
Response.Write ingen_produkter_error
ingen_produkter_error_tjek = False
end if
else
'''''''''' TOMMER START ''''''''''
%>
<table border="0" cellpadding="0" cellspacing="0" width="700">
<tr height="15">
<td height="15" valign="middle" background="billeder/tablebgr.jpg" width="10"></td>
<td height="15" valign="middle" colspan="2" background="billeder/tablebgr.jpg">
<div align="left">
<span class="tabel_top"><%=pgprodukt_tommer%>" ALUFÆLGE</span></div>
</td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="700">
<tr>
<td valign="middle" align="center"><table border="0" cellpadding="0" cellspacing="1" width="120"><tr><td></td></tr></table></td>
<td valign="middle" align="center"><table border="0" cellpadding="0" cellspacing="1" width="120"><tr><td></td></tr></table></td>
<td valign="middle" align="center"><table border="0" cellpadding="0" cellspacing="1" width="120"><tr><td></td></tr></table></td>
<td valign="middle" align="center"><table border="0" cellpadding="0" cellspacing="1" width="120"><tr><td></td></tr></table></td>
<td valign="middle" align="center"><table border="0" cellpadding="0" cellspacing="1" width="120"><tr><td></td></tr></table></td>
</tr>
<tr height="160">
<%
sql_pgprodukt_exe = sql_pgprodukt_start &"and tommer = '"& pgprodukt_tommer &"' "& sql_pgprodukt &" order by produkt"
table_tr_antal = "0"
set rs_pgprodukt_tommer = Conn.execute(sql_pgprodukt_exe)
if rs_pgprodukt_tommer.EOF then
Response.Write "Ingen produkter blev fundet"
else
Do Until rs_pgprodukt_tommer.EOF
pgprodukt_id = rs_pgprodukt_tommer("id")
pgprodukt_katid = rs_pgprodukt_tommer("katid")
pgprodukt_producentid = rs_pgprodukt_tommer("producentid")
pgprodukt_billedeid = rs_pgprodukt_tommer("billedeid")
pgprodukt_produkt = rs_pgprodukt_tommer("produkt")
pgprodukt_beskrivelse = rs_pgprodukt_tommer("beskrivelse")
pgprodukt_falg_bredde = rs_pgprodukt_tommer("falg_bredde")
pgprodukt_tommer = rs_pgprodukt_tommer("tommer")
pgprodukt_hul_antal = rs_pgprodukt_tommer("hul_antal")
pgprodukt_hul_afstand = rs_pgprodukt_tommer("hul_afstand")
pgprodukt_et = rs_pgprodukt_tommer("et")
pgprodukt_hul_afstand = replace(pgprodukt_hul_afstand,"12065","120,65")
pgprodukt_hul_afstand = replace(pgprodukt_hul_afstand,"1397","139,7")
pgprodukt_hul_afstand = replace(pgprodukt_hul_afstand,"1143","114,3")
'''''''''' PRODUCENT NAVN START ''''''''''
sql_pgproducent = "select * from pgproducent where id='"& pgprodukt_producentid &"'"
Set rs_pgproducent = Server.CreateObject("ADODB.Recordset")
rs_pgproducent.open sql_pgproducent, conn, 1, 3
pgproducent_firmanavn = rs_pgproducent("firmanavn")
rs_pgproducent.Close
Set rs_pgproducent = Nothing
Set sql_pgproducent = Nothing
'''''''''' PRODUCENT NAVN SLUT ''''''''''
'''''''''' BILLEDE NAVN START ''''''''''
sql_pgbillede = "select * from pgbillede where id='"& pgprodukt_billedeid &"'"
Set rs_pgbillede = Server.CreateObject("ADODB.Recordset")
rs_pgbillede.open sql_pgbillede, conn, 1, 3
if rs_pgbillede.EOF then
pgbillede_billede = "images/intetbillede.jpg"
else
pgbillede_billede = rs_pgbillede("billede")
pgbillede_billede = "http://www.bilprisguide.dk/images/produkter-small/"& pgbillede_billede
end if
rs_pgbillede.Close
Set rs_pgbillede = Nothing
Set sql_pgbillede = Nothing
'''''''''' BILLEDE NAVN SLUT ''''''''''
'''''''''' PRIS START ''''''''''
sql_pgfirma = "select * from pgfirma where produktid='"& pgprodukt_id &"' and forhandler_id = '2108'"
Set rs_pgfirma = Server.CreateObject("ADODB.Recordset")
rs_pgfirma.open sql_pgfirma, conn, 1, 3
if rs_pgfirma.EOF then
vis_falg = False
else
vis_falg = True
pgfirma_pris = rs_pgfirma("pris")
pgfirma_pris = "Pris kr. "& pgfirma_pris &",-"
pgfirma_lagervarer = rs_pgfirma("lagervarer")
pgfirma_bestillingsvarer = rs_pgfirma("bestillingsvarer")
end if
rs_pgfirma.Close
Set rs_pgfirma = Nothing
Set sql_pgfirma = Nothing
'''''''''' PRIS SLUT ''''''''''
'Tjekker om der er en pris fra BigWheels
if vis_falg = True then
table_tr_antal = table_tr_antal + 1
%>
<td valign="middle" align="center" height="160">
<table border="0" cellpadding="0" cellspacing="1" width="120" bgcolor="black" onclick="window.location='aluvis.asp?falgid=<%=pgprodukt_id%>&bilid=<%=request_bilid%>';" style="cursor: hand;">
<tr>
<td bgcolor="white">
<div align="center">
<img src="<%=pgbillede_billede%>" width="96" height="96" border="0"></div>
</td>
</tr>
<tr>
<td bgcolor="#ebebeb" class="showalu">
<div class="showalu">
<div align="left">
<p class="showalu"><span class="showalubold"><%=pgproducent_firmanavn%> <%=pgprodukt_produkt%><br>
</span><span class="showalu"><%=pgprodukt_falg_bredde%>x<%=pgprodukt_tommer%> - ET<%=pgprodukt_et%><br>
</span><span class="showalubold"><%=pgfirma_pris%></span><span class="showalu"><br />
<% if pgfirma_lagervarer = "True" then %>
<img src="billeder/paalager.gif" width="8" height="8" border="0"> På lager
<% else %>
<img src="billeder/ikkelager.gif" width="8" height="8" border="0"> Ikke på lager
<% end if %>
<br />
</span></p>
</div>
</div>
</td>
</tr>
</table>
</td>
<%
if table_tr_antal = "5" then
table_tr_antal = "0"
%>
</tr>
<tr height="160">
<%
end if
end if
rs_pgprodukt_tommer.MoveNext
Loop
end if
rs_pgprodukt_tommer.close
set rs_pgprodukt_tommer = nothing
'''''''''' TOMMER SLUT ''''''''''
%>
</tr>
</table>
<%
end if 'Slut på fælge tjek (Tommer)
rs_pgprodukt.MoveNext
Loop
end if
rs_pgprodukt.close
set rs_pgprodukt = nothing
set sql_pgprodukt_exe = nothing
'''''''''' GROUP BY TOMMER SLUT ''''''''''
%>
