%@language="VBScript"%>
<% Response.Expires = 0 %>
<% Server.Execute("inc_shopy/" & session("server") & "/head.asp") %>
<%
if request("typ_vyhledavani") = "" then
pocet_zaznamu = 20
pocet_top = 500
elseif request("typ_vyhledavani") = "1" then
pocet_zaznamu = 20
pocet_top = 500
elseif request("typ_vyhledavani") = "2" then
pocet_zaznamu = 20
pocet_top = 500
end if
'řazení záznamů
if not request("seradit") = "" then
if instr(request("seradit"),"_n") > 0 then
order = " ORDER BY " & replace(request("seradit"),"_n","") & " ASC"
elseif instr(request("seradit"),"_d") > 0 then
order = " ORDER BY " & replace(request("seradit"),"_d","") & " DESC"
end if
else
order = ""
end if
'filtrování kategorie
if request("kat") <> "" then
id_kat = request("kat")
Set rs = CreateObject("ADODB.RecordSet")
strSQL = "SELECT strom FROM zbozi_kat WHERE id_zbozi_kat = " & id_kat
rs.Open strSQL, conn, 1, 1
if not rs.eof then
strom = rs("strom")
end if
rs.close
filtr_kat = " AND (zbozi_kat.id_zbozi_kat = " & clng(id_kat) & " OR strom LIKE '" & strom & "," & clng(id_kat) & "%')"
end if
'filtrování dotazu
filtr = ""
if not request("q") = "" then
q = trim(request("q"))
seznam = split(q," ")
if ubound(seznam) > 3 then
konec = 3
else
konec = ubound(seznam)
end if
for start = 0 to konec
if len(seznam(start)) > 0 then
if start = 0 then
filtr1 = """" & seznam(start) & "*"""
elseif start = 1 then
filtr2 = " AND """ & seznam(start) & "*"""
elseif start = 2 then
filtr3 = " AND """ & seznam(start) & "*"""
end if
end if
next
if request.servervariables("SERVER_NAME") = "localhost" then
filtr_hledej_a = "CONTAINS((nazev_zbozi2), '""" & q & "*""')"
filtr_hledej_a2 = "nazev_zbozi2 LIKE '%" & q & "%'"
filtr_hledej_b = "nazev_zbozi2 LIKE '%" & q & "%'"
else
filtr_hledej_a = "CONTAINS((nazev_zbozi2), '""" & q & "*""')"
filtr_hledej_a2 = "nazev_zbozi2 COLLATE Czech_CI_AI LIKE '%" & q & "%'"
filtr_hledej_b = "(CONTAINS((nazev_zbozi2), '" & filtr1 & filtr2 & filtr3 & "') OR CONTAINS((popis1, popis2), '" & filtr1 & filtr2 & filtr3 & "'))"
end if
end if
'filtrování dostupnosti
filtr_skladem = ""
if not request("skladem") = "" then
filtr_skladem = " AND (id_zbozi_dostupnost = 1 OR skladem_varianta = 1)"
end if
'filtrování značky
filtr_znacka = ""
if not request("znacka") = "" then
filtr_znacka = " AND s_znacka.id_s_znacka = " & clng(request("znacka"))
end if
'kategorie
if request("kat") <> "" then
id_kat = request("kat")
Set rs = CreateObject("ADODB.RecordSet")
strSQL = "SELECT nazev FROM zbozi_kat WHERE id_zbozi_kat = " & clng(id_kat)
rs.Open strSQL, conn, 1, 1
if not rs.eof then
kat_nazev = rs("nazev")
end if
rs.close
end if
%>
Výsledek vyhledávání<% if request("kat") <> "" then %> - <%= kat_nazev %><% end if %>
<%
if not session("porovnani_kat") = "" then
pocet = 0
seznam = split(session("porovnani_kat"),",")
for start = 0 to ubound(seznam) - 1
if start = 0 then porovnani_kat = seznam(start) end if
pocet = pocet + ubound(split(session("porovnani" & seznam(start)),","))
next
%>
<%
end if
%>
<%
'spojení filtrů
filtr = filtr_kat & filtr_znacka
'1. typ vyhledávání základní - název, pokud nic nenajde, vyhledá se 2., fulltextem
if request("typ_vyhledavani") = "1" or request("typ_vyhledavani") = "" then
typ_vyhledavani = 1
if request("q") <> "" then
Set rs = CreateObject("ADODB.RecordSet")
if request.servervariables("SERVER_NAME") = "localhost" then
strSQL = "SELECT TOP " & pocet_top & " zbozi_kat.id_zbozi_kat AS id_zbozi_kat, nazev_zbozi_kratky AS nazev_zbozi2, sleva, cena, cena_puvodni, cena_karty1, cena_karty2, cena_karty3, zbozi.odkaz AS odkaz, zbozi.id_zbozi AS id_zbozi, zbozi_kat.odkaz_strom AS odkaz_kat, akce, id_zbozi_dostupnost, skladem_varianta, s_znacka.nazev AS znacka, foto_pocet, kr, darek, darek_typ, skupina, foto_pocet_bez_vodoznaku, splatky FROM zbozi, s_zbozi, zbozi_kat, s_znacka WHERE zbozi.id_s_zbozi = s_zbozi.id_s_zbozi AND zbozi.id_zbozi_kat = zbozi_kat.id_zbozi_kat AND s_zbozi.id_s_znacka = s_znacka.id_s_znacka AND zbozi.smazano = 0" & filtr & " AND zbozi.id_s_zbozi = ANY (SELECT TOP " & pocet_top & " MAX(zbozi.id_s_zbozi) FROM zbozi, s_zbozi WHERE s_zbozi.id_s_zbozi = zbozi.id_s_zbozi AND (zobrazit = 1 OR skupina_zobrazit = 1)" & filtr_skladem & " AND " & filtr_hledej_a2 & " GROUP BY skupina)" & order
else
strSQL = "SELECT TOP " & pocet_top & " zbozi_kat.id_zbozi_kat AS id_zbozi_kat, nazev_zbozi_kratky AS nazev_zbozi2, sleva, cena, cena_puvodni, cena_karty1, cena_karty2, cena_karty3, zbozi.odkaz AS odkaz, zbozi.id_zbozi AS id_zbozi, zbozi_kat.odkaz_strom AS odkaz_kat, akce, id_zbozi_dostupnost, skladem_varianta, s_znacka.nazev AS znacka, foto_pocet, kr, darek, darek_typ, skupina, foto_pocet_bez_vodoznaku, splatky FROM zbozi, s_zbozi, zbozi_kat, s_znacka WHERE zbozi.id_s_zbozi = s_zbozi.id_s_zbozi AND zbozi.id_zbozi_kat = zbozi_kat.id_zbozi_kat AND s_zbozi.id_s_znacka = s_znacka.id_s_znacka AND zbozi.smazano = 0 AND zobrazit_kat = 1" & filtr & " AND zbozi.id_s_zbozi = ANY (SELECT TOP " & pocet_top & " MAX(zbozi.id_s_zbozi) FROM zbozi, s_zbozi WHERE s_zbozi.id_s_zbozi = zbozi.id_s_zbozi AND (zobrazit = 1 OR skupina_zobrazit = 1)" & filtr_skladem & " AND " & filtr_hledej_a2 & " GROUP BY CASE WHEN skupina > 0 THEN skupina ELSE id_zbozi END)" & order
end if
if request("test") = "1" then
response.write strsql & "
"
end if
rs.Open strSQL, conn, 1, 1
end if
%>
<%
end if
'2. typ vyhledávání fulltext - název, popis
if request("typ_vyhledavani") = "2" or request("typ_vyhledavani") = "" then
typ_vyhledavani = 2
if request("q") <> "" then
Set rs = CreateObject("ADODB.RecordSet")
if request.servervariables("SERVER_NAME") = "localhost" then
strSQL = "SELECT TOP " & pocet_top & " zbozi_kat.id_zbozi_kat AS id_zbozi_kat, nazev_zbozi_kratky AS nazev_zbozi2, sleva, cena, cena_puvodni, cena_karty1, cena_karty2, cena_karty3, zbozi.odkaz AS odkaz, zbozi.id_zbozi AS id_zbozi, zbozi_kat.odkaz_strom AS odkaz_kat, akce, id_zbozi_dostupnost, skladem_varianta, s_znacka.nazev AS znacka, foto_pocet, kr, darek, darek_typ, skupina, foto_pocet_bez_vodoznaku, splatky FROM zbozi, s_zbozi, zbozi_kat, s_znacka WHERE zbozi.id_s_zbozi = s_zbozi.id_s_zbozi AND zbozi.id_zbozi_kat = zbozi_kat.id_zbozi_kat AND s_zbozi.id_s_znacka = s_znacka.id_s_znacka AND zbozi.smazano = 0" & filtr & " AND zbozi.id_s_zbozi = ANY (SELECT TOP " & pocet_top & " MAX(zbozi.id_s_zbozi) FROM zbozi, s_zbozi WHERE s_zbozi.id_s_zbozi = zbozi.id_s_zbozi AND (zobrazit = 1 OR skupina_zobrazit = 1)" & filtr_skladem & " AND " & filtr_hledej_b & " GROUP BY skupina)" & order
else
strSQL = "SELECT TOP " & pocet_top & " zbozi_kat.id_zbozi_kat AS id_zbozi_kat, nazev_zbozi_kratky AS nazev_zbozi2, sleva, cena, cena_puvodni, cena_karty1, cena_karty2, cena_karty3, zbozi.odkaz AS odkaz, zbozi.id_zbozi AS id_zbozi, zbozi_kat.odkaz_strom AS odkaz_kat, akce, id_zbozi_dostupnost, skladem_varianta, s_znacka.nazev AS znacka, foto_pocet, kr, darek, darek_typ, skupina, foto_pocet_bez_vodoznaku, splatky FROM zbozi, s_zbozi, zbozi_kat, s_znacka WHERE zbozi.id_s_zbozi = s_zbozi.id_s_zbozi AND zbozi.id_zbozi_kat = zbozi_kat.id_zbozi_kat AND s_zbozi.id_s_znacka = s_znacka.id_s_znacka AND zbozi.smazano = 0" & filtr & " AND zbozi.id_s_zbozi = ANY (SELECT TOP " & pocet_top & " MAX(zbozi.id_s_zbozi) FROM zbozi, s_zbozi WHERE s_zbozi.id_s_zbozi = zbozi.id_s_zbozi AND (zobrazit = 1 OR skupina_zobrazit = 1)" & filtr_skladem & " AND " & filtr_hledej_b & " GROUP BY CASE WHEN skupina > 0 THEN skupina ELSE id_zbozi END)" & order
end if
if request("test") = "1" then
response.write strsql & "
"
end if
rs.Open strSQL, conn, 1, 1
end if
%>
<%
end if
%>
<%
if not request("q") = "" then
conn.close
end if
%>
<% Server.Execute("inc_shopy/" & session("server") & "/bottom.asp") %>