Avatar billede grind Nybegynder
11. januar 2004 - 23:48 Der er 8 kommentarer og
1 løsning

Anvende søgeparameter unden indhold

Jeg er ved at lave en side hvor man søger varer med to kriterier h.h.v en farve og en anvendelse.
Imidlertid vil jeg også gerne kunne søge med farve alene, hvorfor der skal tildeles en egenskab til parameteren anvendelse så alle poster kommer med der opfylder farven.
Kan man anvende et tegn, der hentyder til at alle poster skal med - altså ligesom tegnet "%" blot som runtimevariabel for et tal.
Avatar billede grind Nybegynder
11. januar 2004 - 23:50 #1
Jeg mener: Anvende søgestreng hvor kun den ene parameter(af 2) har en værdi
Avatar billede avlund Nybegynder
11. januar 2004 - 23:52 #2
Smartest er som regel at skrive:

if anvendelse <> ""
  anv = " AND anvendelse = " & anvendelse
else
  anv = ""

sql = "SELECT felter FROM tabel WHERE farve = " & farve & anv
Avatar billede nute Nybegynder
12. januar 2004 - 12:58 #3
avlund >> du mangler lige nogle '' ... og så ville jeg nok skrive det på en lidt anden måde:

sql = "SELECT felter FROM tabel WHERE farve = '" & farve & "'"

if anvendelse <> "" then
  sql = " AND anvendelse = '" & anvendelse & "'"
end if

;-)
Avatar billede avlund Nybegynder
13. januar 2004 - 22:02 #4
Nute: så vidt jeg kan forstå på det oprindelige indlæg, er anvendelsen gemt som numerisk værdi. Så der mangler ingen apostroffer.

I det konkrete tilfælde er din løsning lige så god som min, omend ikke helt så fleksibel hvis der f.eks. skal laves sortering og andet godt bagefter. Selvom det da godt kan lade sig gøre.
Avatar billede nute Nybegynder
13. januar 2004 - 22:19 #5
avlund >> du har ret ... nu ser jeg at det han er ude efter ligger gemt som en numerisk værdi ... mine pinger/apostroffer skal i så tilfælde væk

om din løsning er lige så god som din ... hmmm ... så kan vi gå ned og snakke om strengbehandling i VB(script) og måden VB(script) "konkatinerer" strenger.

For hver gang du initialiserer en streng, ved at skrive:

str = "et eller andet"

så allokerer du en ny blok minde til din streng. For hver gang du prøver at konkatinere én streng med en anden, ved at skrive:

str = "et eller andet" & " plus noget mere"

eller

str1 = "et eller andet"
str2 = " plus noget mere"
str1 = str1 & str2

så allokerer du faktisk minde til en *ny* variabel der indeholder den nye værdi. Med andre ord, når man "konkatinerer" i VB(script), så sidder du på et tidspunkt med 2 referencer til en blok minde istedenfor at du hele tiden "bygger på" din allerede allokerede blok til din første variabel. Hvis man udfører tunge strengbehandlinger i VB(script), så bliver det ualmindelig "tungt" for serveren at trække rundt. Med andre ord... desto færre "konkatineringer" du bruger, desto bedre performance får du.

/nute
Avatar billede grind Nybegynder
13. januar 2004 - 22:34 #6
Tak for forslagene!
Avatar billede avlund Nybegynder
14. januar 2004 - 00:54 #7
nute: jeg går selv meget op i performance, så problemstillingen er mig langtfra ubekendt. Men det konkrete tilfælde skal ses i betragtning af, at vi snakker om et server-side script, hvor variablerne "flushes" hver gang et roundtrip til serveren udføres (en ny side loades). Dermed skal der være usædvanligt mange på serveren + særdeles tung kode på siden, før det er noget der gør en reel forskel - efter min mening. Såfremt vi snakkede om session-variabler, forstår jeg til fulde din bekymring.

grind: tak for points!
Avatar billede nute Nybegynder
14. januar 2004 - 09:42 #8
avlund >> jo ... jeg giver dig sådan set ret. Jeg er enig i at der skal være mange på serveren og meget tung kode på siderne inden belastningen bliver for stor. Mine guidelines for kode er uanset at kode så optimalt som muligt allerede den første gang. Ikke at jeg sidder og kigger på koden den første gang og tænker "hmm ... hvor kan jeg optimere", jg tænker bare på ting som fx mit sidste indlæg. JEg koder efter de ting jeg kender til om "optimal kode", uanset om jeg ved at der måske ikke kommer til at være særlig mange på dét system jeg koder.

Men jeg forstår godt din pointe, og er ikke uenig i det du skriver.

;-)
Avatar billede avlund Nybegynder
14. januar 2004 - 14:12 #9
Jaeh, hvis jeg havde lavet det til eget projekt havde jeg nok også tænkt mere i de baner, også på det niveau. Mange års erfaring har bare lært mig at nogle gange må man ofre lidt for at kunne få det hele til at spille sammen, hvis man f.eks. arbejder med et eksternt framework ved siden af.

Men det ser ud til at vi er kommet til en forståelse.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester