Avatar billede xcover Nybegynder
15. marts 2005 - 17:26 Der er 1 kommentar og
1 løsning

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%>&quot; ALUF&AElig;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%>&nbsp;<%=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">&nbsp;P&aring; lager
                                <% else %>
                                <img src="billeder/ikkelager.gif" width="8" height="8" border="0">&nbsp;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 ''''''''''
%>
Avatar billede moejensen Nybegynder
18. marts 2005 - 16:09 #1
Så vidt jeg kan se, har du kun en db connection, som du bruger hele vejen igennem.

Er det en access database i kører systemet på?
Avatar billede xcover Nybegynder
19. marts 2005 - 13:46 #2
--> moejensen
Jeg har fundet en meget bedere løsning ;) Så det virker nu...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester