/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
mange forspørglser i sql
Fra : pepss


Dato : 10-02-04 15:25

hejsa NG

jeg har en "søge side" hvor jeg laver en søgning i en database men koden kan
hurtig blive meget uoverskuelig da jeg 30-40 søgekriterier.
for at gøre det mere besværlig så på den side hvor man kan indtaste det man
vil søge efter behøver man ikke "krysse af" ved alle felter.

lige nu ser min kode sådan ud:
If NOT Len(strmedlem)>0 Then
strmedlem = "%"
End If

If NOT Len(strfoto)>0 Then
strfoto = "%"
End If

+ de 30-40 andre

strSQL = "SELECT *" & _
"FROM medlemmer Where" & _
" medlem LIKE '" & strmedlem & "'" & _
" AND foto > " & strfoto & " " & _

osv.

det jeg så vil høre er om man ikke på en måde lave noget alá

strSQL = "SELECT *" & _
"FROM medlemmer Where" & _

If Len(strmedlem)>0 Then
" medlem LIKE '" & strmedlem & "'" & _
end if

If Len(strfoto)>0 Then
" AND foto > " & strfoto & " " & _
end if

for at samle de 2 del af koden og så kun have de forspørersler med i sql
kaldet der skal bruges

jeg håber jeg har fået forklaret mig godt nok eller må i meget gerne spørge!

--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk
De frække noveller www.novelle.cafe-flirt.dk



 
 
Jørgen Müller (11-02-2004)
Kommentar
Fra : Jørgen Müller


Dato : 11-02-04 00:58

pepss skrev:
>for at samle de 2 del af koden og så kun have de forspørersler med i sql
>kaldet der skal bruges
>strSQL = "SELECT *" & _
>"FROM medlemmer Where" & _

>If Len(strmedlem)>0 Then
>" medlem LIKE '" & strmedlem & "'" & _
>end if

Det burde du kunne, men husk at "samle" din strSQL i noget á lá

strSQL ="SELECT *" &_
" FROM medlemmer WHERE" &_
If Len(strmedlem) >0 Then
strSQL = strSQL & " medlem LIKE '" & strmedlem "'" &_
End If

og vær lige opmærksom på mellemrummene, du har ikke mellemrum mellem * og
FROM

og husk også at skrive din strSQL ud før du bruger den, så du er sikker på
den står rigtigt.
--
Med Venlig Hilsen
Jørgen Müller



Jørn Andersen (11-02-2004)
Kommentar
Fra : Jørn Andersen


Dato : 11-02-04 01:54

On Wed, 11 Feb 2004 00:58:20 +0100, "Jørgen Müller"
<j.muller@mail.tele.dk> wrote:

>Det burde du kunne, men husk at "samle" din strSQL i noget á lá
>
>strSQL ="SELECT *" &_
>" FROM medlemmer WHERE" &_
>If Len(strmedlem) >0 Then
>strSQL = strSQL & " medlem LIKE '" & strmedlem "'" &_
>End If

Nej, denne vil give en ASP_/VBScript-syntaksfejl som skrevet i mit
svar til Pepss.

--
Jørn Andersen,
Brønshøj

Jørn Andersen (11-02-2004)
Kommentar
Fra : Jørn Andersen


Dato : 11-02-04 01:52

On Tue, 10 Feb 2004 15:24:33 +0100, "pepss" <olefriis@privat.dk>
wrote:

>det jeg så vil høre er om man ikke på en måde lave noget alá
>
>strSQL = "SELECT *" & _
> "FROM medlemmer Where" & _
>
>If Len(strmedlem)>0 Then
>" medlem LIKE '" & strmedlem & "'" & _
>end if
>
>If Len(strfoto)>0 Then
>" AND foto > " & strfoto & " " & _
>end if
>
>for at samle de 2 del af koden og så kun have de forspørersler med i sql
>kaldet der skal bruges

Nej ikke direkte - du får en (ASP/VBScript-)syntax-fejl [1]. Men du
kan:

strSQL = "SELECT *" & _
" FROM medlemmer WHERE 1 = 1"

If Len(strmedlem) > 0 Then
strSQL = strSQL & " AND medlem LIKE '" & strmedlem & "'"
End if

If Len(strfoto) > 0 Then
strSQL = strSQL & " AND foto > " & strfoto
End if
osv.

Du er nødt til at bruge 'WHERE 1 = 1' (eller noget lignende) til at
starte med,da du jo ikke kan vide, om detførste felt er valgt.

Om så dette egentlig er specielt meget smartere, end det du gjorde
først? - Tjah ...

Formentlig har du ovenikøbet noget kode forud, hvor du danner
variablerne strMedlem, strFoto m.v. Måske du kunne bygge SQL-stumperne
op her, men ellers må man jo bare sige, at hvis der er mange
betingelser, så får du også mange stumper, der skal samles, og sådan
er det bare

I hvert fald skal man ikke begynde at gå på kompromis med
input-validering og overskuelighed i kodningen bare for at spare et
par linier.


[1]
Du får en (ASP/VBScript-)syntax-fejl, fordi
1) du "forlænger" en linie:
strSql = "blabla" & _
uden at der kommer noget direkte bagefter,

og fordi
2) du ikke har et udsagn inde i din If-sætning:
If blabla Then
" en streng, men ikke et udsagn ..."
End If

Håber det giver mening.

Good luck!

--
Jørn Andersen,
Brønshøj

pepss (11-02-2004)
Kommentar
Fra : pepss


Dato : 11-02-04 10:19


"Jørn Andersen" skrev
"pepss" wrote:
>
> >for at samle de 2 del af koden og så kun have de forspørersler med i sql
> >kaldet der skal bruges
>
> Nej ikke direkte - du får en (ASP/VBScript-)syntax-fejl [1]. Men du
> kan:

[snip]

> Om så dette egentlig er specielt meget smartere, end det du gjorde
> først? - Tjah ...
>
> Formentlig har du ovenikøbet noget kode forud, hvor du danner
> variablerne strMedlem, strFoto m.v. Måske du kunne bygge SQL-stumperne
> op her, men ellers må man jo bare sige, at hvis der er mange
> betingelser, så får du også mange stumper, der skal samles, og sådan
> er det bare

ja det er da rigtig men hvis jeg skal fejlfinde så er det jo letter at
overskuge sql kaldet på den her måde!

> I hvert fald skal man ikke begynde at gå på kompromis med
> input-validering og overskuelighed i kodningen bare for at spare et
> par linier.

det blivet også valideret i hovede og r..
sådan som jeg viste kode har jeg bruget den et godt stykke tid men det er
ikke til at se hvad man finder i databasen på den måde så jeg tror og håber
da det bliver letter

> Du får en (ASP/VBScript-)syntax-fejl, fordi
> 1) du "forlænger" en linie:
> strSql = "blabla" & _
> uden at der kommer noget direkte bagefter,
>
> og fordi
> 2) du ikke har et udsagn inde i din If-sætning:
> If blabla Then
> " en streng, men ikke et udsagn ..."
> End If
>
> Håber det giver mening.

ja jeg var godt klar over at det ville gi en fejl på den måde jeg havde
vist! det har jeg lavede nok fejl til at kunne gætte

du skal ha rigtig mange tak for dit svar!

--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk
De frække noveller www.novelle.cafe-flirt.dk



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste