/ 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 sortering
Fra : j p


Dato : 10-10-09 14:55

Jeg har følgende asp kode:

<%

set rs = server.createobject("adodb.recordset")
sql = "SELECT tabel.brugernavn FROM tabel LEFT OUTER JOIN
ignorelist ON ignorelist.ignore=tabel.brugernavn WHERE
ignorelist.brugernavn = '" & session("loginbrugernavn") & "'"
rs.open sql, Conn, 0, 1, 1

do until rs.eof

response.Write "<li>" & rs("brugernavn") & "</li>"

rs.movenext
loop

%>
Den viser en liste over dem i tabel som også findes i ignorelist
..

Jeg vil gerne have den til at vise alle andre end dem der findes
i ignorelist! Hvordan?

mvh

Johnny

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Stig Johansen (10-10-2009)
Kommentar
Fra : Stig Johansen


Dato : 10-10-09 18:16

j p wrote:

> Jeg har følgende asp kode:
>
> <%
>
> set rs = server.createobject("adodb.recordset")
> sql = "SELECT tabel.brugernavn FROM tabel LEFT OUTER JOIN
> ignorelist ON ignorelist.ignore=tabel.brugernavn WHERE
> ignorelist.brugernavn = '" & session("loginbrugernavn") & "'"
> rs.open sql, Conn, 0, 1, 1
...
> Jeg vil gerne have den til at vise alle andre end dem der findes
> i ignorelist! Hvordan?

sql = "SELECT tabel.brugernavn FROM tabel LEFT OUTER JOIN ignorelist ON
ignorelist.ignore=tabel.brugernavn WHERE ignorelist.ignore IS NULL"


--
Med venlig hilsen
Stig Johansen

j p (11-10-2009)
Kommentar
Fra : j p


Dato : 11-10-09 15:13

Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> j p wrote:
>
> > Jeg har følgende asp kode:
> >
> > <%
> >
> > set rs = server.createobject("adodb.recordset")
> > sql = "SELECT tabel.brugernavn FROM tabel LEFT OUTER JOIN
> > ignorelist ON ignorelist.ignore=tabel.brugernavn WHERE
> > ignorelist.brugernavn = '" & session("loginbrugernavn") & "'"
> > rs.open sql, Conn, 0, 1, 1
> ...
> > Jeg vil gerne have den til at vise alle andre end dem der findes
> > i ignorelist! Hvordan?
>
> sql = "SELECT tabel.brugernavn FROM tabel LEFT OUTER JOIN ignorelist ON
> ignorelist.ignore=tabel.brugernavn WHERE ignorelist.ignore IS NULL"
>
>
> --
> Med venlig hilsen
> Stig Johansen

Hej Stig, det virker også fint, men det tager alle fra ignorelist....det
skal kun være dem som er = session("loginbruigernavn") altså dem som den
indloggede bruger har ignoreret.

Hvordan løser man den?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Stig Johansen (12-10-2009)
Kommentar
Fra : Stig Johansen


Dato : 12-10-09 05:18

j p wrote:

> Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
>> j p wrote:
>>
>> > Jeg har følgende asp kode:
>> >
>> > <%
>> >
>> > set rs = server.createobject("adodb.recordset")
>> > sql = "SELECT tabel.brugernavn FROM tabel LEFT OUTER JOIN
>> > ignorelist ON ignorelist.ignore=tabel.brugernavn WHERE
>> > ignorelist.brugernavn = '" & session("loginbrugernavn") & "'"
>> > rs.open sql, Conn, 0, 1, 1
>> ...
>> > Jeg vil gerne have den til at vise alle andre end dem der findes
>> > i ignorelist! Hvordan?
>>
>> sql = "SELECT tabel.brugernavn FROM tabel LEFT OUTER JOIN ignorelist ON
>> ignorelist.ignore=tabel.brugernavn WHERE ignorelist.ignore IS NULL"
>>
>
> Hej Stig, det virker også fint, men det tager alle fra ignorelist....det
> skal kun være dem som er = session("loginbruigernavn") altså dem som den
> indloggede bruger har ignoreret.
>
> Hvordan løser man den?

Jeg forstår ikke rigtig hvad det er du vil have.
Du bruger først:
....
WHERE ignorelist.brugernavn = '" & session("loginbrugernavn")
....
Som finder det pågøldende brugernavn i ignorelist, og så skriver du at du
vil have alle andre end dem, der findes i ignorelist.

Dette gøres med:
....
WHERE ignorelist.ignore IS NULL
....

Nu vil du igen have = session("loginbruigernavn").
Du kan ikke søge på både en værdi, samtidig med den ikke må eksistere.

Det ville være smartere hvis du listede nogle testdata op, så man kan se
indhold og sammenhæng i dine tabeller.

Måske skal din SQL 'vendes om', men som sagt, så prøv at lave en liste med
eksempler på indhold, eksempelvis:
tabel:
Brugernavn
aa
ab
ac
ad
....
Ignorelist:
ignore brugernavn
aa ??
?? ??
.....

Og lave så en liste med hvordan resultatet skal se ud.

Du skal regne med, at os der læser intet aner om dit system, hvad det er for
noget, ej heller data og relationer.

Jeg vil godt hjælpe, men jeg har ikke rigtig nogle gæt på hvad det er du
vil.

En sætning som:
"altså dem som den indloggede bruger har ignoreret"
Giver formentlig mening for dig og dine brugere, men jeg ved ikke hvad du
mener med 'ignoreret'.

--
Med venlig hilsen
Stig Johansen

j p (12-10-2009)
Kommentar
Fra : j p


Dato : 12-10-09 16:10

Ok,

En bruger er logget ind på siden og brugerens brugernavn er lagt i
sessions-variablen session("loginbrugernavn")

Har har en tabel med navnet tabel.

Tabel
..........
Brugernavn
----------
Kim
Børge
Poul
Sanne
Ib
o.s.v.


En anden tabel

Ignorerlist
-----------
Brugernavn Ignorer
Kim Sanne
Børge Peter
Kim Ib
Poul Lars
o.s.v.


Nu vil jeg gerne have listet alle brugernavne fra tabel, bortset fra dem som
den indloggede bruger har i Ignorerlist.

Altså skal resultatet være, hvis vi siger at Kim er logget ind:

Liste
.......
Kim
Børge
Poul


Altså uden Sanne og Ib.

Giver det mening nu? Håber det :)

mvh

Johnny

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Stig Johansen (12-10-2009)
Kommentar
Fra : Stig Johansen


Dato : 12-10-09 19:48

"j p" <donner_63@hotmail.com> wrote in message
news:4ad346d1$0$286$14726298@news.sunsite.dk...
> Ok,
>
> En bruger er logget ind på siden og brugerens brugernavn er lagt i
> sessions-variablen session("loginbrugernavn")
>
> Har har en tabel med navnet tabel.
>
> Tabel
> .........
> Brugernavn
> ----------
> Kim
> Børge
> Poul
> Sanne
> Ib
> o.s.v.
>
>
> En anden tabel
>
> Ignorerlist
> -----------
> Brugernavn Ignorer
> Kim Sanne
> Børge Peter
> Kim Ib
> Poul Lars
> o.s.v.
>
>
> Nu vil jeg gerne have listet alle brugernavne fra tabel, bortset fra dem
som
> den indloggede bruger har i Ignorerlist.
>
> Altså skal resultatet være, hvis vi siger at Kim er logget ind:
>
> Liste
> ......
> Kim
> Børge
> Poul
>
>
> Altså uden Sanne og Ib.
>
> Giver det mening nu? Håber det :)

Ja, nu tror jeg den fes ind :)
Tilsyneladende understøtter Access ikke yderligere specs i JOIN, så vi må
over i en anden konstruktion.

Nu skriver du ikke hvilken database du bruger, men den her er aftestet i
Access ud fra dine data, og bør virke i andre databaser også:

SELECT T.Brugernavn
FROM Tabel T
WHERE NOT EXISTS (SELECT I.Brugernavn FROM Ignorerlist I WHERE
I.Brugernavn='Kim' AND I.Ignorer=T.Brugernavn)
ORDER BY T.Brugernavn

Når du bygger SQL strengen skal du så bruge session("loginbrugernavn") i
stredet for Kim.

--
Med venlig hilsen/Best regards
Stig Johansen




j p (12-10-2009)
Kommentar
Fra : j p


Dato : 12-10-09 20:22

Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> "j p" <donner_63@hotmail.com> wrote in message
> news:4ad346d1$0$286$14726298@news.sunsite.dk...
> > Ok,
> >
> > En bruger er logget ind på siden og brugerens brugernavn er lagt i
> > sessions-variablen session("loginbrugernavn")
> >
> > Har har en tabel med navnet tabel.
> >
> > Tabel
> > .........
> > Brugernavn
> > ----------
> > Kim
> > Børge
> > Poul
> > Sanne
> > Ib
> > o.s.v.
> >
> >
> > En anden tabel
> >
> > Ignorerlist
> > -----------
> > Brugernavn Ignorer
> > Kim Sanne
> > Børge Peter
> > Kim Ib
> > Poul Lars
> > o.s.v.
> >
> >
> > Nu vil jeg gerne have listet alle brugernavne fra tabel, bortset fra dem
> som
> > den indloggede bruger har i Ignorerlist.
> >
> > Altså skal resultatet være, hvis vi siger at Kim er logget ind:
> >
> > Liste
> > ......
> > Kim
> > Børge
> > Poul
> >
> >
> > Altså uden Sanne og Ib.
> >
> > Giver det mening nu? Håber det :)
>
> Ja, nu tror jeg den fes ind :)
> Tilsyneladende understøtter Access ikke yderligere specs i JOIN, så vi må
> over i en anden konstruktion.
>
> Nu skriver du ikke hvilken database du bruger, men den her er aftestet i
> Access ud fra dine data, og bør virke i andre databaser også:
>
> SELECT T.Brugernavn
> FROM Tabel T
> WHERE NOT EXISTS (SELECT I.Brugernavn FROM Ignorerlist I WHERE
> I.Brugernavn='Kim' AND I.Ignorer=T.Brugernavn)
> ORDER BY T.Brugernavn
>
> Når du bygger SQL strengen skal du så bruge session("loginbrugernavn") i
> stredet for Kim.
>
> --
> Med venlig hilsen/Best regards
> Stig Johansen
>
>
>
Hej

Jeg har mySQL:

sql ="SELECT T.Brugernavn FROM tabel T WHERE NOT EXISTS (SELECT I.Brugernavn
FROM Ignorelist I WHERE I.Brugernavn='"& session("loginbrugernavn")& "' AND
I.Ignore=T.Brugernavn) ORDER BY T.Brugernavn"

men får fejlen :

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-4.0.26-standard]You have an error in your
SQL syntax. Check the manual that corresponds to your MySQL server version
for the right syntax to use near 'EXISTS (SELECT I.Brugernavn FROM Ignorelist
I WHERE I.Brugernav

/soeg_test.asp, line 13

Kan du se hvorfor?



--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Stig Johansen (13-10-2009)
Kommentar
Fra : Stig Johansen


Dato : 13-10-09 05:51

j p wrote:

> Jeg har mySQL:
>
> sql ="SELECT T.Brugernavn FROM tabel T WHERE NOT EXISTS (SELECT
> I.Brugernavn FROM Ignorelist I WHERE I.Brugernavn='"&
> session("loginbrugernavn")& "' AND I.Ignore=T.Brugernavn) ORDER BY
> T.Brugernavn"
>
> men får fejlen :
>
> Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
>
> [MySQL][ODBC 3.51 Driver][mysqld-4.0.26-standard]You have an error in your
> SQL syntax. Check the manual that corresponds to your MySQL server version
> for the right syntax to use near 'EXISTS (SELECT I.Brugernavn FROM
> Ignorelist I WHERE I.Brugernav
>
> /soeg_test.asp, line 13
>
> Kan du se hvorfor?

Hvis [mysqld-4.0.26-standard] er et udtryk for du kører version 4.0.26, så
understøtter den ikke subselects (selects inde i parantesen).

Det kom først med version 4.1, som i øvrigt er rimelig gammel.

Den version jeg har adgang til på Unoeuro er 5.1.17

Mit bedste bud er at få opdateret mySQL, ellers må jeg melde pas.

--
Med venlig hilsen
Stig Johansen

j p (14-10-2009)
Kommentar
Fra : j p


Dato : 14-10-09 11:44

Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> j p wrote:
>
> > Jeg har mySQL:
> >
> > sql ="SELECT T.Brugernavn FROM tabel T WHERE NOT EXISTS (SELECT
> > I.Brugernavn FROM Ignorelist I WHERE I.Brugernavn='"&
> > session("loginbrugernavn")& "' AND I.Ignore=T.Brugernavn) ORDER BY
> > T.Brugernavn"
> >
> > men får fejlen :
> >
> > Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
> >
> > [MySQL][ODBC 3.51 Driver][mysqld-4.0.26-standard]You have an error in your
> > SQL syntax. Check the manual that corresponds to your MySQL server version
> > for the right syntax to use near 'EXISTS (SELECT I.Brugernavn FROM
> > Ignorelist I WHERE I.Brugernav
> >
> > /soeg_test.asp, line 13
> >
> > Kan du se hvorfor?
>
> Hvis [mysqld-4.0.26-standard] er et udtryk for du kører version 4.0.26, så
> understøtter den ikke subselects (selects inde i parantesen).
>
> Det kom først med version 4.1, som i øvrigt er rimelig gammel.
>
> Den version jeg har adgang til på Unoeuro er 5.1.17
>
> Mit bedste bud er at få opdateret mySQL, ellers må jeg melde pas.
>
> --
> Med venlig hilsen
> Stig Johansen


Okay, jeg vil prøve at få mit webhotel til at opdatere min mySQL....de har
andre servere som kører 5.0. Jeg takker for din hjælp.

mvh

Johnny

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Stig Johansen (14-10-2009)
Kommentar
Fra : Stig Johansen


Dato : 14-10-09 14:41

j p wrote:

> Okay, jeg vil prøve at få mit webhotel til at opdatere min mySQL....de har
> andre servere som kører 5.0. Jeg takker for din hjælp.

Jeg har lige testet de samme data og SQL på min mySQL, og der virker det
fint.

--
Med venlig hilsen
Stig Johansen

j p (15-10-2009)
Kommentar
Fra : j p


Dato : 15-10-09 18:12

Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> j p wrote:
>
> > Okay, jeg vil prøve at få mit webhotel til at opdatere min mySQL....de har
> > andre servere som kører 5.0. Jeg takker for din hjælp.
>
> Jeg har lige testet de samme data og SQL på min mySQL, og der virker det
> fint.
>
> --
> Med venlig hilsen
> Stig Johansen

Hej Stig,

Jeg har nu fået mySQL 5.0 og har:

sql ="SELECT T.Brugernavn FROM tabel T WHERE NOT EXISTS (SELECT I.Brugernavn
FROM ignorelist I WHERE I.Brugernavn='"& session("loginbrugernavn")& "' AND
I.Ignore=T.Brugernavn) ORDER BY T.Brugernavn"

Kan man, i samme sql, også filtere så man kun får folk på listen som er 44 år
f.eks. alder='44" hvordan sætter man det ind ?

mvh

Johnny

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Stig Johansen (16-10-2009)
Kommentar
Fra : Stig Johansen


Dato : 16-10-09 01:11

j p wrote:

> Jeg har nu fået mySQL 5.0 og har:

Godt ;)

>
> sql ="SELECT T.Brugernavn FROM tabel T WHERE NOT EXISTS (SELECT
> I.Brugernavn FROM ignorelist I WHERE I.Brugernavn='"&
> session("loginbrugernavn")& "' AND I.Ignore=T.Brugernavn) ORDER BY
> T.Brugernavn"
>
> Kan man, i samme sql, også filtere så man kun får folk på listen som er 44
> år
> f.eks. alder='44"

Ja.

> hvordan sætter man det ind ?

Du fortsætter bare i WHERE delen (laver lige nogle linieskift aht
overskueligheden):
.....
SELECT T.Brugernavn
FROM tabel T
WHERE NOT EXISTS (SELECT
I.Brugernavn FROM ignorelist I WHERE I.Brugernavn='"&
session("loginbrugernavn")& "' AND I.Ignore=T.Brugernavn)

AND alder='44' (eller alder=44, hvis det er et talfelt)
AND evt.noget.mere

ORDER BY T.Brugernavn
.....
Hvis du vil hente alder (ELLER ANDET; DER INdgår i SQL'en) fra et input
felt, skal du huske at sikre mod SQL injection.

--
Med venlig hilsen
Stig Johansen

j p (16-10-2009)
Kommentar
Fra : j p


Dato : 16-10-09 07:30

Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> j p wrote:
>
> > Jeg har nu fået mySQL 5.0 og har:
>
> Godt ;)
>
> >
> > sql ="SELECT T.Brugernavn FROM tabel T WHERE NOT EXISTS (SELECT
> > I.Brugernavn FROM ignorelist I WHERE I.Brugernavn='"&
> > session("loginbrugernavn")& "' AND I.Ignore=T.Brugernavn) ORDER BY
> > T.Brugernavn"
> >
> > Kan man, i samme sql, også filtere så man kun får folk på listen som er 44
> > år
> > f.eks. alder='44"
>
> Ja.
>
> > hvordan sætter man det ind ?
>
> Du fortsætter bare i WHERE delen (laver lige nogle linieskift aht
> overskueligheden):
> .....
> SELECT T.Brugernavn
> FROM tabel T
> WHERE NOT EXISTS (SELECT
> I.Brugernavn FROM ignorelist I WHERE I.Brugernavn='"&
> session("loginbrugernavn")& "' AND I.Ignore=T.Brugernavn)
>
> AND alder='44' (eller alder=44, hvis det er et talfelt)
> AND evt.noget.mere
>
> ORDER BY T.Brugernavn
> .....
> Hvis du vil hente alder (ELLER ANDET; DER INdgår i SQL'en) fra et input
> felt, skal du huske at sikre mod SQL injection.
>
> --
> Med venlig hilsen
> Stig Johansen


Super....jeg takker mange gange for din hjælp.

Johnny

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Stig Johansen (16-10-2009)
Kommentar
Fra : Stig Johansen


Dato : 16-10-09 09:03

Stig Johansen wrote:

> ELLER ANDET; DER INdgår i SQL'en)

Hmm.. hvad f*nden skete der lige med cAPs LoCk ? :)

--
Med venlig hilsen
Stig Johansen

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

Månedens bedste
Årets bedste
Sidste års bedste