webForumDet fria alternativet

plocka ut poster från array

4 svar · 267 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 076 inlägg
#1

har en array från getrows (resultat av en sökmotor) som kan se ut typ:

produkt--huvudkategori--underkategori

p1-----------datorer-------------hårdvara
p2-----------litteratur-----------böcker
p3-----------datorer-------------mjukvara
p4-----------datorer-------------hårdvara
p5-----------litteratur-----------tidningar

kan man på nått sätt plocka ut huvud- och underkategorierna utan dubletter så att man får:
datorer:hårdvara:mjukvara--litteratur:böcker:tidningar

inte det lättaste kanske men, men...går det?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Om du lägger till

order by huvudkategori, underkategori

i din select-sats, så kan du själv se när något byter värde när du loopar igenom din array.

doggelitoMedlem sedan juni 20003 076 inlägg
#3

du har inget skönt exempel på hur loopen skulle kunna se ut?
min loop idag ser ut så här(ungefär):

for rows = 0 to ubound(mygetrows,2)
category_main = mygetrows(7,rows)
category_sub = mygetrows(5,rows)
response.write category_main
response.write category_sub
next

men då blir det ju varannan huvud- och underkategori + att det blir flera av samma kategori.

det som ska hända är alltså: när man gör en sökning i sökmotorn så vill jag visa i vilka huvud- och underkategorier man fick träffar i.
så att det blir:
du fick träffar i kategorierna:huvud1-under1-under2-huvud2-under1-osv...
sen listas samtliga produkter.
borde man inte kunna plocka ut kategorierna separat från arrayen och lista dem eller lär jag göra två selectsatser istället?
min select ser ut så här:

strsql = "select p.p_productid, p.p_title, p.p_fact, p.p_price, cs.cs_subid, cs.cs_name, cm.cm_mainid, cm.cm_name, st.st_name "&_
"from ((products p inner join categories_sub cs on p.p_subid = cs.cs_subid) "&_
"inner join categories_main cm on cs.cs_mainid = cm.cm_mainid) "&_
"left join stock st on p.p_stockid = st.st_stockid "&_
"where p.p_title LIKE '%" & searchfield & "%' order by p.p_title"
Call selectpost

förlåt att den är ganska lång men jag tyckte att det var lika bra att ta med hela strängen.
jaha det här blev väl ett lagomt fredags jobb att avsluta dagen med va!

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Jo, om du vill ha produkterna sorterade enligt titel så blir det besvärligt att plocka ut unika kategorier. I så fall är det nog enklast, som du säger, att göra en fråga speciellt för det

query = "select distinct cs.cs_name,  , cm.cm_name from ((products p inner join categories_sub cs on p.p_subid = cs.cs_subid) "&_
"inner join categories_main cm on cs.cs_mainid = cm.cm_mainid) "&_
"left join stock st on p.p_stockid = st.st_stockid "&_
"where p.p_title LIKE '%" & searchfield & "%' order by cs.cs_name, cm.cm_name "

och sedan kan du ta fram dom med denna kod

hk = ""
set rs = connect.execute(query)
while not rs.eof
  if  hk <> rs("cm_name") then
      hk = rs("cm_name")
      response.write hk & "<br>"
  end if
  response.write "---- " rs("cs_name") & "<br>"
  rs.movenext
wend
doggelitoMedlem sedan juni 20003 076 inlägg
#5

jag gjorde en egen fråga för kategorierna, funkar klart godkänt!

123 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)