FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Mycket flitig postare
|
Tjena! Mitt första inlägg här
![]() Håller på att bygga en liten sökmotor i ASP. Har lite problem med att få till queryn. Än så länge så fungerar det jättebra... dock är mitt problem följande: När man skriver t ex "Volvo Saab" i formuläret och söker på det, så ska träffarna innehålla antingen Volvo och/eller Saab från två olika kolumner i databasen. Här har jag problem... Står Volvo Saab tillsammans så får jag ju självklart träff, men står de helt antingen för sig själva i posten eller på var sitt ställe (alltså inte ihopa "Volvo Saab") inom posten, så får jag inga träffar. Jag vet varför det blir så... det är ju min query som inte är fullständig... än så länge har jag bara lyckats få ihop Kod:
SELECT * FROM [table] WHERE [col1]= " & Request.Form("x") & " AND [col2] LIKE '%" & Request.Form("y") & "%' Tänkte mig först en array som jag ska loopa igenom ord för ord i söksträngen, men det känns som om det borde finnas ett lättare sätt... Tack på förhand |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Medlem
|
hmm, jag tror faktiskt inte det går.
Jag hade däremot löst det genom att splitta queryn och göra "flera sökningar" av den. Typ: Like '%" & Hela_strängen & "%' OR LIKE '%" & splitstring(0) & "%' OR LIKE '%" & splitstring(1) & "%' Kanske dumt förklarat, förstår du inte kan jag skriva ner lite ordentlig kod åt dig. Edit: Jag kom på fler saker.. i värsta fall får du lägga de som flera frågor.. Sen får du se till att du inte får ut samma träffar flera gånger också förresten.. |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Mycket flitig postare
|
Tack för svaret... men jag tror inte jag har löst mitt problem än för det
![]() Redan nu har jag flera if-satser pga att formuläret består av flera olika fält... Så en variant är ju som du säger att utöka med fler frågor... men det blir ganska komplext och antagligen rätt slött i slutändan kan jag tänka mig... Så som du skrev nedan: Kod:
Like '%" & Hela_strängen & "%' OR LIKE '%" & splitstring(0) & "%' OR LIKE '%" & splitstring(1) & "%' Har du nån koll på hur man kan göra det? Antagligen kan jag köra en massa if-satser, men blir inte det ganska trögt? och ganska svåröverskådligt? ![]() Jag ska fortsätta testa mig fram, bl a på detta spåret som du gav mig... tack! Du får gärna skriva lite kod om du har tid... alltid bra att ha nåt att luta sig mot när man sitter fast! Googlade en del och förvånansvärt få rejäla lösningar jag hittade... egentligen inte en enda som löste problemet ![]() |
|||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Medlem
|
MyString = "SAAB, VOLVO,FORD"
MySplit = split(Mystring, ",") For I TO UBound(MySplit) 'Här loopar du fram frågan SQLQuery = SQLQuery & " OR modell LIKE = '%" & MySplit(I) & "%' " Next SQL = "SELECT WHERE bla bla bla " & SQLQuery Borde inte ngt sådant fungera? antagligen får du sätta en liten räknare som håller koll på att OR:et kommer på rätt plats i stringen, men det ska inte vara något större problem. Som sagt var, det är från huvudet, och det är inte friskt =) Edit: Konstigt. Min stavningskontroll från Word går tydligen inte att integrera här ;p |
||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Mycket flitig postare
|
hehe... skippa word o lita på ditt huvud istället
![]() Aaaaaaah.... hur dom var jag... jag loopade helt cp... Så som du loopar är ju en självklarthet!!! Sätter en variabel för queryn! Mitt huvud är heller inte friskt ![]() Tack så mycket! Jag ska genast sätta mig ner med det.... jag berättar hur det gick... eller om jag behöver hjälp thanx mate! |
|||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Mycket flitig postare
|
Förresten... har en annan grej jag tänkte på...
Kan man inte skriva ut allt innehåll i en array på nåt vis i ASP utan att behöva loopa? Så som man kan i javascript där man bara anropar arrayens namn rakt av? Har du eller nån annan koll på det? Hittar ingenting i mina ASP-böcker... |
|||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Mycket flitig postare
|
Kom på en grej!!!
Jag kan ju kanske lägga in söksträngen som en variabel, ersätta alla mellanslag med %-tecken... för säkerhets skull oxå alla dubbla mellanslag... och sen köra LIKE med variabeln med % runt om! Detta borde ju funka.... Vad tror du? Edit: Bra att ha grannar, det var han som kläckte idén... nu ska vi se... |
|||
![]() |
![]() |
![]() |
#8 | |||
|
||||
Mycket flitig postare
|
jag har ett likn. fast i php, kör en explode på strängen jag får in, sen får personen välja om den vill söka och/eller, så splittar jag variabeln där jag har space, " " och kör en while så den lägger till det stycke som behövs i en variabel, sen byggs samma variabel på i loopen
![]() |
|||
![]() |
![]() |
![]() |
#9 | |||
|
||||
Mycket flitig postare
|
Aha.... så du utökar bara variabeln med nuvarande värdet med alla och/eller?
Det var ju oxå en idé... men ärligt talat så tror jag det räcker med så jag tänkte mig... bara det att personen inte får välja och/eller =) |
|||
![]() |
![]() |
Svara |
|
|