Archief - ASP : Zoekfunctie

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Heerschappy

Legacy Member
Ik heb dus 3 tabellen uit acces waaruit ik moet zoekn

Voor 2 gebruik ik combo boxen en voor 1 een tekstvak
hoe doet ge dit, of hoe begint ge hier het beste aan?

Ramm

Legacy Member
"SELECT * FROM table WHERE tekstvak LIKE '%" & tekstvak_value & "%' AND combo1 = '" & combo1_value & "' AND combo2 = '" & combo2_value & "';"

Joriz

Legacy Member
of met drie aparte queries, naar gelang welke tabel je wil doorzoeken, ook niet * nemen, maar enkel de kolommen die je nodig hebt

Heerschappy

Legacy Member
SELECT Class2, Class3, Description
FROM TblImport
WHERE Class2 LIKE 'MMColParam' AND Class3 LIKE 'MMColParam2' AND Description LIKE '%MMColParamDes%'

zo heb ik het opgelost en twerkt
en ge moest blijkbaar ook de comboboxen en en het textvak in hetzelfde form zetten.

Heerschappy

Legacy Member
nu de volgende vraag

hoe moet ge na de zoekfunctie dingen in een zogenaamd winkelkarretje zetten?

servi

Legacy Member
Je maakt een formulier aan met daarin een tekstveldje en een submit-knop.

Dan controleer je in je pagina ofdat dit formulier verstuurd is, is dit het geval, dan gebruik je de inhoud van dat tekstveldje in je query.

die tekstveld vraag je als volgt op :
<%
tekst = Request.Form("tekstveld")
query = " SELECT bla FROM tabel WHERE tekst LIKE ""%" & tekst "%"" "
%>

voor meer info over forms : http://www.w3schools.com/asp/asp_inputforms.asp

Ramm

Legacy Member
Dit is mijn code:
Code:
<%
product_id = killChars(request.querystring("id"))
total_products = killChars(request.cookies("total_products" & session.SessionID))
quant = killChars(request.querystring("quant"))

if len(quant) = 0 OR not Isnumeric(quant) then
	quant = 1
else
	quant = cint(quant)
end if

if len(total_products) = 0 then
	total_products = 0
else
	total_products = cint(total_products)
end if

if IsNumeric(product_id) AND len(product_id) > 0 then
	product_id = cint(product_id)
else
	response.redirect("cart.asp")
end if

product_isnew = 1

if total_products > 0 then
	for x = 1 to total_products
		if product_isnew = 0 then exit for
		cookie_product_id = cint(request.cookies("product" & x & session.SessionID)("product_id"))
		if cookie_product_id = product_id then
			product_isnew = 0
		end if
		product_cookie = x
	next
else
	product_cookie = 0
end if

if product_isnew = 1 then
	product_cookie = product_cookie + 1
	total_products = total_products + 1
	response.cookies("product" & product_cookie & session.SessionID)("product_id") = product_id
	response.cookies("product" & product_cookie & session.SessionID)("product_ordered") = quant
	response.cookies("total_products" & session.SessionID) = total_products
else
	response.cookies("product" & product_cookie & session.SessionID)("product_ordered") = cint(request.cookies("product" & product_cookie & session.SessionID)("product_ordered")) + quant
end if

response.redirect("cart.asp")
%>
Als je dit bijvoorbeeld in een bestand cart_add.asp plaatst, dan volstaat de volgende link om een product toe te voegen in de winkelwagen:

cart_add.asp?id=1&quant=1

Waarbij het ID het unieke ID is van uw product, en quant de hoeveelheid je wenst toe te voegen (als je niks meegeeft zal hij een standaardwaarde van 1 ingeven).

De waarden worden dan bijgehouden in een cookie die je dan in je cart.asp gemakkelijk kan uitlezen

totaal aantal producten: request.cookies("total_products" & session.sessionID)

Squall-sX-

Legacy Member
Is het niet makkelijker een object te maken voor je winkelkarretje, en dit in de sessie op te slaan? Je weet trouwens niet of cookies ondersteunt worden op de client.

Ramm

Legacy Member
Squall-sX- zei:
Is het niet makkelijker een object te maken voor je winkelkarretje, en dit in de sessie op te slaan? Je weet trouwens niet of cookies ondersteunt worden op de client.
moet je dan niet met een dll werken (ik ken hier dus niks van hé :p)

NoReason

Legacy Member
bij aspx wordt uw sessie object ook dmv een link in een cookie bijgehouden (allezja de verwijzing ernaar) je kan ook cookie-loos sessie aanzetten...
maar zoekfunctie dus idd
ofwel 1 sql-statement die de drie tabellen doorloopt en de resultaten teruggeeft
ofwel aparte statements, die je dan moet samenvoegen he...
bij mijn zelfgemaakt asp.net forum maak ik gebruik van 1 sql-statement daarvoor, wa subselects enzo

WHiSPy

Legacy Member
En dan kennen we 't verschil tussen asp en asp.net toch zó goed, meneer.

Je kan trouwens perfect classes maken in asp zonder dat je dll's nodig hebt. Enkel weet 'k niet of je die ook kan serializen om ze in 'n sessie op te slaan.

Heerschappy

Legacy Member
Eerst geeft hij een fout met killchars. Als ik die 3 killchars wegdoe
dan krijg ik vervolgens de fout

Soort fout:
Runtimefout Microsoft VBScript (0x800A0006)
Overloop: 'cint'
/combotest/CartAdd.asp, line 19



if IsNumeric(product_id) AND len(product_id) > 0 then
product_id = cint(product_id)
else
response.redirect("CartView.asp")
end if


hier zit dus erges nog een fout.
aan wat kan dit liggen?








Ramm zei:
Dit is mijn code:
Code:
<%
product_id = killChars(request.querystring("id"))
total_products = killChars(request.cookies("total_products" & session.SessionID))
quant = killChars(request.querystring("quant"))

if len(quant) = 0 OR not Isnumeric(quant) then
	quant = 1
else
	quant = cint(quant)
end if

if len(total_products) = 0 then
	total_products = 0
else
	total_products = cint(total_products)
end if

if IsNumeric(product_id) AND len(product_id) > 0 then
	product_id = cint(product_id)
else
	response.redirect("cart.asp")
end if

product_isnew = 1

if total_products > 0 then
	for x = 1 to total_products
		if product_isnew = 0 then exit for
		cookie_product_id = cint(request.cookies("product" & x & session.SessionID)("product_id"))
		if cookie_product_id = product_id then
			product_isnew = 0
		end if
		product_cookie = x
	next
else
	product_cookie = 0
end if

if product_isnew = 1 then
	product_cookie = product_cookie + 1
	total_products = total_products + 1
	response.cookies("product" & product_cookie & session.SessionID)("product_id") = product_id
	response.cookies("product" & product_cookie & session.SessionID)("product_ordered") = quant
	response.cookies("total_products" & session.SessionID) = total_products
else
	response.cookies("product" & product_cookie & session.SessionID)("product_ordered") = cint(request.cookies("product" & product_cookie & session.SessionID)("product_ordered")) + quant
end if

response.redirect("cart.asp")
%>
Als je dit bijvoorbeeld in een bestand cart_add.asp plaatst, dan volstaat de volgende link om een product toe te voegen in de winkelwagen:

cart_add.asp?id=1&quant=1

Waarbij het ID het unieke ID is van uw product, en quant de hoeveelheid je wenst toe te voegen (als je niks meegeeft zal hij een standaardwaarde van 1 ingeven).

De waarden worden dan bijgehouden in een cookie die je dan in je cart.asp gemakkelijk kan uitlezen

totaal aantal producten: request.cookies("total_products" & session.sessionID)

Ramm

Legacy Member
doe die cint weg, misschien ligt het aan het feit dat er zoveel producten in uw database zitten (cint kan maar tot 32000 ofzo dacht ik)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan