/ 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
SQL-søgefunktion vil ikke respektere tidsb~
Fra : Jakob Munck


Dato : 24-10-01 09:54

Jeg har en velfungende søgefunktion på min site, men jeg vil gerne begrænse
søgningerne til at brugeren finder personer, der har været logget ind på
siten i de sidste 30 dage. Min SQL virker bare ikke på dette punkt. Her er
min gamle SQL og mit forsøg på ny SQL. Den nye SQL giver ingen fejlmelding,
men den begrænser desværre heller ikke søgningen (DateDiff) til de personer,
der har været logget ind de sidste 30 dage. Se her:
--------------------------------------------------------------------
' Gammel søgefunktion (virker fint):

strSQL = "SELECT TOP 25 brugerId, brugerNavn, alder, bopael,
uddannelsearbejde, brugerfilename, koen, beskrivdigselv FROM bruger WHERE"

strSQL = strSQL & " (brugerNavn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (bopael LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (uddannelsearbejde LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (religion LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (koen LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (beskrivdigselv LIKE '%" & strKeyword & "%')"

-----------------------
' Ny søgefunktion (giver ingen fejlmelding, men tager ikke hensyn til
DateDiff....):

strSQL = "SELECT TOP 25 brugerId, brugerNavn, alder, bopael,
uddannelsearbejde, brugerfilename, koen, beskrivdigselv, sidsteBesoeg FROM
bruger where DateDiff('d', sidsteBesoeg, Now) < 30 and"

strSQL = strSQL & " (brugerNavn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (bopael LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (uddannelsearbejde LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (religion LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (koen LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (beskrivdigselv LIKE '%" & strKeyword & "%')"
----------------------------------------------------

Hvad gør jeg galt?

v.h.
Jakob Munck



 
 
Rune Baess (24-10-2001)
Kommentar
Fra : Rune Baess


Dato : 24-10-01 10:14


Forslag:

WHERE (DateDiff(...ow) < 30)
AND ((brugerNavn LIKE '% ... %') OR (bopael LIKE '% ... %') OR ... )

Altså et ekstra sæt ()

Rune

> -----------------------
> ' Ny søgefunktion (giver ingen fejlmelding, men tager ikke hensyn til
> DateDiff....):
>
> strSQL = "SELECT TOP 25 brugerId, brugerNavn, alder, bopael,
> uddannelsearbejde, brugerfilename, koen, beskrivdigselv, sidsteBesoeg
FROM
> bruger where DateDiff('d', sidsteBesoeg, Now) < 30 and"
>
> strSQL = strSQL & " (brugerNavn LIKE '%" & strKeyword & "%')"
> strSQL = strSQL & " OR (bopael LIKE '%" & strKeyword & "%')"
> strSQL = strSQL & " OR (uddannelsearbejde LIKE '%" & strKeyword & "%')"
> strSQL = strSQL & " OR (religion LIKE '%" & strKeyword & "%')"
> strSQL = strSQL & " OR (koen LIKE '%" & strKeyword & "%')"
> strSQL = strSQL & " OR (beskrivdigselv LIKE '%" & strKeyword & "%')"
> ----------------------------------------------------
>
> Hvad gør jeg galt?
>
> v.h.
> Jakob Munck
>
>




Jakob Munck (24-10-2001)
Kommentar
Fra : Jakob Munck


Dato : 24-10-01 10:48

Det løste problemet. Tak for hjælpen !

v.h.
Jakob




"Rune Baess" <rune@(ingenspamtak)baess.dk> wrote in message
news:YAvB7.1867$D%1.125603@news010.worldonline.dk...
>
> Forslag:
>
> WHERE (DateDiff(...ow) < 30)
> AND ((brugerNavn LIKE '% ... %') OR (bopael LIKE '% ... %') OR ... )
>
> Altså et ekstra sæt ()
>
> Rune
>
> > -----------------------
> > ' Ny søgefunktion (giver ingen fejlmelding, men tager ikke hensyn til
> > DateDiff....):
> >
> > strSQL = "SELECT TOP 25 brugerId, brugerNavn, alder, bopael,
> > uddannelsearbejde, brugerfilename, koen, beskrivdigselv, sidsteBesoeg
> FROM
> > bruger where DateDiff('d', sidsteBesoeg, Now) < 30 and"
> >
> > strSQL = strSQL & " (brugerNavn LIKE '%" & strKeyword & "%')"
> > strSQL = strSQL & " OR (bopael LIKE '%" & strKeyword & "%')"
> > strSQL = strSQL & " OR (uddannelsearbejde LIKE '%" & strKeyword & "%')"
> > strSQL = strSQL & " OR (religion LIKE '%" & strKeyword & "%')"
> > strSQL = strSQL & " OR (koen LIKE '%" & strKeyword & "%')"
> > strSQL = strSQL & " OR (beskrivdigselv LIKE '%" & strKeyword & "%')"
> > ----------------------------------------------------
> >
> > Hvad gør jeg galt?
> >
> > v.h.
> > Jakob Munck
> >
> >
>
>
>



Søren Nielsen (25-10-2001)
Kommentar
Fra : Søren Nielsen


Dato : 25-10-01 15:42

"Jakob Munck" <jakob.munck@tdcadsl.dk> skrev i en meddelelse
news:3bd68b0d$0$277$edfadb0f@dspool01.news.tele.dk...
> Det løste problemet. Tak for hjælpen !
>
> v.h.
> Jakob
>
>
>
>
> "Rune Baess" <rune@(ingenspamtak)baess.dk> wrote in message
> news:YAvB7.1867$D%1.125603@news010.worldonline.dk...
> >
> > Forslag:
> >
> > WHERE (DateDiff(...ow) < 30)
> > AND ((brugerNavn LIKE '% ... %') OR (bopael LIKE '% ... %') OR ... )
> >
> > Altså et ekstra sæt ()
> >
> > Rune
> >
> > > -----------------------
> > > ' Ny søgefunktion (giver ingen fejlmelding, men tager ikke hensyn til
> > > DateDiff....):
> > >
> > > strSQL = "SELECT TOP 25 brugerId, brugerNavn, alder, bopael,
> > > uddannelsearbejde, brugerfilename, koen, beskrivdigselv, sidsteBesoeg
> > FROM
> > > bruger where DateDiff('d', sidsteBesoeg, Now) < 30 and"
> > >
> > > strSQL = strSQL & " (brugerNavn LIKE '%" & strKeyword & "%')"
> > > strSQL = strSQL & " OR (bopael LIKE '%" & strKeyword & "%')"
> > > strSQL = strSQL & " OR (uddannelsearbejde LIKE '%" & strKeyword &
"%')"
> > > strSQL = strSQL & " OR (religion LIKE '%" & strKeyword & "%')"
> > > strSQL = strSQL & " OR (koen LIKE '%" & strKeyword & "%')"
> > > strSQL = strSQL & " OR (beskrivdigselv LIKE '%" & strKeyword & "%')"
> > > ----------------------------------------------------
> > >
> > > Hvad gør jeg galt?
> > >
> > > v.h.
> > > Jakob Munck
> > >
> > >


Jeg har lidt af de samme problem, men her drejer kontakten sig om en
accessdatabase, og jeg kan ikke få syntaksen korrekt.

SQL = "SELECT * FROM nyheder WHERE DateDiff('m', Dato , datDagsdato) < 3
ORDER BY Dato"

Meningen er at den kun skal vise nyheder som er under 3 måneder gamle.

dette er fejlen jeg får - Der er for få parametre. Der var ventet 1.













Søren Nielsen (25-10-2001)
Kommentar
Fra : Søren Nielsen


Dato : 25-10-01 15:53


"Søren Nielsen" <unbeaten@c-n-p.dk> skrev i en meddelelse
news:3bd8251b$0$723$edfadb0f@dspool01.news.tele.dk...
> "Jakob Munck" <jakob.munck@tdcadsl.dk> skrev i en meddelelse
> news:3bd68b0d$0$277$edfadb0f@dspool01.news.tele.dk...
> > Det løste problemet. Tak for hjælpen !
> >
> > v.h.
> > Jakob
> >
> >
> >
> >
> > "Rune Baess" <rune@(ingenspamtak)baess.dk> wrote in message
> > news:YAvB7.1867$D%1.125603@news010.worldonline.dk...
> > >
> > > Forslag:
> > >
> > > WHERE (DateDiff(...ow) < 30)
> > > AND ((brugerNavn LIKE '% ... %') OR (bopael LIKE '% ... %') OR ... )
> > >
> > > Altså et ekstra sæt ()
> > >
> > > Rune
> > >
> > > > -----------------------
> > > > ' Ny søgefunktion (giver ingen fejlmelding, men tager ikke hensyn
til
> > > > DateDiff....):
> > > >
> > > > strSQL = "SELECT TOP 25 brugerId, brugerNavn, alder, bopael,
> > > > uddannelsearbejde, brugerfilename, koen, beskrivdigselv,
sidsteBesoeg
> > > FROM
> > > > bruger where DateDiff('d', sidsteBesoeg, Now) < 30 and"
> > > >
> > > > strSQL = strSQL & " (brugerNavn LIKE '%" & strKeyword & "%')"
> > > > strSQL = strSQL & " OR (bopael LIKE '%" & strKeyword & "%')"
> > > > strSQL = strSQL & " OR (uddannelsearbejde LIKE '%" & strKeyword &
> "%')"
> > > > strSQL = strSQL & " OR (religion LIKE '%" & strKeyword & "%')"
> > > > strSQL = strSQL & " OR (koen LIKE '%" & strKeyword & "%')"
> > > > strSQL = strSQL & " OR (beskrivdigselv LIKE '%" & strKeyword & "%')"
> > > > ----------------------------------------------------
> > > >
> > > > Hvad gør jeg galt?
> > > >
> > > > v.h.
> > > > Jakob Munck
> > > >
> > > >
>
>
> Jeg har lidt af de samme problem, men her drejer kontakten sig om en
> accessdatabase, og jeg kan ikke få syntaksen korrekt.
>
> SQL = "SELECT * FROM nyheder WHERE DateDiff('m', Dato , datDagsdato) < 3
> ORDER BY Dato"
>
> Meningen er at den kun skal vise nyheder som er under 3 måneder gamle.
>
> dette er fejlen jeg får - Der er for få parametre. Der var ventet 1


hov det skulle have været

SQL = "SELECT * FROM nyheder WHERE DateDiff("m", Dato , datDagsdato) < 3
ORDER BY Dato"

og så er fejlen

SQL = "SELECT * FROM nyheder WHERE DateDiff("m", Dato , datDagsdato) < 3
ORDER BY Dato"
----------------------------------------------------------------------------
------------^






Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408954
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste