webForumDet fria alternativet

Hämta och visa

ASP

3 svar · 160 visningar · startad av EchO

Medlem sedan aug. 2001112 inlägg
Frågan#1

Hej!

Håller på med att skriva en sökfunktion för en databas. Vill hämta värden från två tabeller och sedan skriva ut resultatet sorterat efter tex namn.
Problemet är att dessa två tabeller har olika namn på fälten. Hur gör jag för att visa resultatet sorterat snyggt i ordning... Problemet är loopen som skriver ut resultatet... Får ingen ordning på den.

Nån som har nått förslag..??
Thanx

@EchO

Medlem sedan dec. 200012 464 inlägg
#2

Använd union i sökningen.

Du får nog visa lite kod för att jag skall förstå vad som är problemet.

------------------
essentitia preter non sans multiplicandum

Medlem sedan aug. 2001112 inlägg
#3

Så här vill jag att sql satsen ska se ut:

stringSql="SELECT * FROM products, events WHERE products.name LIKE '%" & input & "%' OR products.description LIKE '%" & input & "%' OR events.vadsomhelst LIKE '%" & input & "%'OR events.vadsomhelst2"

Hur skriver jag sedan ut det snyggt sorterat i en loop?

Loop:

Do While NOT objRs.BOF AND NOT objRs.EOF
			
				strTemp = strTemp & HTMLdisplay(objRs)
				objRs.MoveNext
			Loop

Funktion:

Private Function HTMLdisplay(ByRef objRs)
	
		HTMLdisplay = HTMLdisplay & objRs("name") & ""
		HTMLdisplay = HTMLdisplay & "<BR>" & objRs("Description") & ""
	End Function

Problemet jag har är hur jag skriver ut värden från eventstabellen sorterat...
Hoppas att du förstår hur jag menar... ;)

@EchO

Medlem sedan dec. 200012 464 inlägg
#4

Om du skriver så där så får du nog inte det resultat som du förväntar dig. Då du anger två tabeller och inte har något join-villkor så kommer du att få ut alla kombinationer av rader. Om det är 5 poster i events som uppfyller villkoren och 5 i products så kommer du att få 25 poster i resultatet och inte 10.

Jag skulle nog rekommendera en union

stringSql="SELECT name,description FROM products  WHERE products.name LIKE '%" & input & "%' OR products.description LIKE '%" & input & "%' union all select event,description from events where events.event LIKE '%" & input & "%'OR events.description like '%" & input & "%' ORDER by name "

Då kommer sorteringen att ske med avseende på både name och event. Om du använder en union så måste det vara lika många kolumner i select-listorna och typerna måste vara jämförbara.

------------------
essentitia preter non sans multiplicandum

249 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)