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
3 svar · 160 visningar · startad av EchO
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
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
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
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