| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | 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
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |