Avatar billede pfp Nybegynder
14. november 2003 - 23:50 Der er 23 kommentarer og
1 løsning

Probelm ambigious

Hej,

Jeg har et spørgsmål der hænger en del sammen med:
http://www.eksperten.dk/spm/427475

Der skal trækkes nogle sider ud af en database, og de skal så grupperes efter en træstruktur. Sådan at alle undersider bliver udskrevet under deres hovedside. Desuden tilhører alle sider et 'County' som er den "øverste" grupperingsfaktor.

Alt det har jeg fået god hjælp til i det tidligere omtalte spørgsmål. Nu er det bare at jeg er kommet i tanke om at det skal udvides med brugerrettigheder til de forskellige sider.

Session("Rank") angiver:
1. admin
2. superuser

Admin skal selvfølgelig have adgang til alt. Superuser skal kun have adgang til de sider han har fået lov til af admin. Derfor har jeg lavet en tabel som holder styr på brugerrettigheder. Den hedder useraccess og indeholder følgende:
- pageID
- userID
- groupID

Hvis en bruger (eller en gruppe) har adgang til en side så står pageid og userid her.

Alt dette skal så nu kædes sammen i en lang SQL sætning og det er så det jeg har forsøgt herunder.

Men jeg får som i nok kan gætte fejl.
"[MySQL][ODBC 3.51 Driver][mysqld-4.0.12-nt]Column: 'County' in where clause is ambiguous"

<%
If Session("Rank") = 2 then
SQL = "Select County from Pages WHERE County > 0 group by County "
SET RS = Conn.Execute(SQL)


    ' tabellen starter her
    Response.Write "<table width='100%' border='0' cellspacing='0' cellpadding='2'>"
   
Do while NOT RS.EOF
   
    subSQL = "Select * from County where CountyID = " & RS("County")
    set rs2 = Conn.Execute(subSQL)
   
    Do While not rs2.eof

    ' udskriver kommunebaren
    Response.Write "<tr bgcolor='0c3c63'><td colspan='5'><span class='style1'>" & ucase(rs2("Name")) & "</span></td></tr>"
   
    ' udskriver tekstbaren her
    Response.Write "<tr>"
    Response.Write "<td width='271'><strong>Titel</strong></td>"
    Response.Write "<td width='96'><strong>Sidst red.</strong></td>"
    Response.Write "<td width='97'><div align='center'><strong>Relaterede filer</strong></div></td>"
    Response.Write "<td width='96'><div align='center'><strong>Egenskaber</strong></div></td>"
    Response.Write "<td width='96'><div align='center'><strong>Slet?</strong></div></td>"
    Response.Write "</tr>"
 
        subsubSQL = "Select * FROM Pages Left Join useraccess On Pages.pageid = useraccess.pageid WHERE useraccess.PageID = Pages.PageID AND useraccess.GroupID = " & Session("GroupID") & " AND Main = 1 AND lang =" & Session("language") & " AND County = "& RS("County")
        SET subsubRS = Conn.Execute(subsubSQL)

        Do while NOT subsubRS.EOF
            Response.Write "<tr>"
            Response.Write "<td><a href='../../../red.asp?pageid=" & subsubRS("pageid") & "'>" & subsubRS("Title") &"</a></td>"
            Response.Write "<td></td>"
            Response.Write "<td><div align='center'></div></td>"
            Response.Write "<td><div align='center'></div></td>"
            Response.Write "<td><div align='center'></div></td>"
            Response.Write "</tr>"
             
            subsubsubSQL = "Select * FROM Pages Left Join useraccess On Pages.pageid = useraccess.pageid WHERE useraccess.PageID = Pages.PageID AND useraccess.GroupID = " & Session("GroupID") & " AND Parent = " & rs("PageID") & " AND County = "& RS("County")
            SET subsubsubRS = Conn.Execute(subsubsubSQL)

            Do while NOT subsubsubRS.EOF
                    Response.Write "<tr>"
                    Response.Write "<td><a href='../../../red.asp?pageid=" & subsubsubRS("pageid") & "'>" & "- " & subsubsubRS("Title") &"</a></td>"
                    Response.Write "<td></td>"
                    Response.Write "<td><div align='center'></div></td>"
                    Response.Write "<td><div align='center'></div></td>"
                    Response.Write "<td><div align='center'></div></td>"
                    Response.Write "</tr>"
                   
            subsubsubRS.movenext
            loop
                   
        subsubRS.MoveNext
        loop
       
    rs2.movenext
    loop
   
   
RS.MoveNext
loop

    ' tabellen slutter her
    Response.Write "</table>"
End if
%>

Pyha, det var en lang smørre. Håber der er en der har tid til at hjælpe mig videre.

På forhånd tak.

/pfp

PS: Sig til hvis det kræver flere point.
Avatar billede festy Nybegynder
15. november 2003 - 01:10 #1
prøv:

ubsubSQL = "Select * FROM Pages Left Join useraccess On Pages.pageid = useraccess.pageid WHERE useraccess.PageID = Pages.PageID AND useraccess.GroupID = " & Session("GroupID") & " AND Pages.Main = 1 AND lang =" & Session("language") & " AND Pages.County = "& RS("County")
SET subsubRS = Conn.Execute(subsubSQL)
Avatar billede pfp Nybegynder
15. november 2003 - 10:36 #2
Hej,

Ja så gik den da godt nok videre i hvert fald.

Skal der ikke også pilles ved:
subsubsubSQL = "Select * FROM Pages Left Join useraccess On Pages.pageid = useraccess.pageid WHERE useraccess.PageID = Pages.PageID AND useraccess.GroupID = " & Session("GroupID") & " AND Parent = " & rs("PageID") & " AND County = "& RS("County")
            SET subsubsubRS = Conn.Execute(subsubsubSQL)

For der stopper den nu...
Avatar billede festy Nybegynder
15. november 2003 - 11:18 #3
subsubsubSQL = "Select * FROM Pages Left Join useraccess On Pages.pageid = useraccess.pageid WHERE useraccess.PageID = Pages.PageID AND useraccess.GroupID = " & Session("GroupID") & " AND Pages.Parent = " & rs("PageID") & " AND Pages.County = "& RS("County")
            SET subsubsubRS = Conn.Execute(subsubsubSQL)
Avatar billede pfp Nybegynder
15. november 2003 - 13:31 #4
Jeg får stadig fejl i denne:
subsubsubSQL = "Select * FROM Pages Left Join useraccess On Pages.pageid = useraccess.pageid WHERE useraccess.PageID = Pages.PageID AND useraccess.GroupID = " & Session("GroupID") & " AND Pages.Parent = " & rs("PageID") & " AND Pages.County = "& RS("County")
            SET subsubsubRS = Conn.Execute(subsubsubSQL)

"Item cannot be found in the collection corresponding to the requested name or ordinal."
Avatar billede festy Nybegynder
15. november 2003 - 13:52 #5
Får du nogle poster frem hvis du indsætter værdier i select-sætningen?
f.eks:

subsubsubSQL = "Select * FROM Pages Left Join useraccess On Pages.pageid = useraccess.pageid WHERE useraccess.PageID = 2 AND useraccess.GroupID = 2 AND Pages.Parent = 2 AND Pages.County = 2;"
SET subsubsubRS = Conn.Execute(subsubsubSQL)
Avatar billede pfp Nybegynder
15. november 2003 - 14:43 #6
Ja jeg får den aktuelle post frem hvis jeg indsætter et tal der passer i min db..
Avatar billede pfp Nybegynder
15. november 2003 - 21:09 #7
Har du nogen ide om hvad der så kan være galt?
Avatar billede festy Nybegynder
15. november 2003 - 21:41 #8
Fejl skulle betyde at du prøver at hente noget fra et kolonne navn der ikke eksisterer.
Kolonnerne PageID, Parent og County henter du fra tabellen Pages ikk?
Og du henter kun PageID fra useraccess ikk?
Avatar billede pfp Nybegynder
15. november 2003 - 21:46 #9
Jo. PageId og UserId fra useraccess for at tjekke om der er givet adgang...
Avatar billede festy Nybegynder
16. november 2003 - 13:07 #10
Jeg tro du henviset til et feltnavn du ikke har hentet i din select-sætning.
Jeg tror det er en lille syntaksfejl, prøv at gennemgå alle dine Response.Write rs("feltnavn") og sikre dig at felnavnet også eksisterer i din tabel.
Avatar billede pfp Nybegynder
16. november 2003 - 15:06 #11
Jeg kan bare ikke forstå hvis det er det for jeg bruger jo Select *
Avatar billede festy Nybegynder
16. november 2003 - 16:05 #12
Enig, men jeg tror heller ikke det er din select-sætning der er noget galt med, men der hvor du sætter værdierne. Altså ved Response.Write(RS("her_feltnavnet_står_forkert")).
Avatar billede pfp Nybegynder
16. november 2003 - 17:54 #13
Jeg prøver lige at printe det ud og gå det mere systematisk efter...

Tak indtil videre.
Avatar billede festy Nybegynder
17. november 2003 - 14:22 #14
np, hvis du sætter koden ind igen, så vil jeg gerne kigge på den.
Avatar billede pfp Nybegynder
17. november 2003 - 14:40 #15
Okay mange tak for det...

<%
' administrator
If Session("Rank") = 1 then   
SQL = "Select County from Pages WHERE County > 0 group by County "
SET RS = Conn.Execute(SQL)


    ' tabellen starter her
    Response.Write "<table width='100%' border='0' cellspacing='0' cellpadding='2'>"
   
Do while NOT RS.EOF
   
    subSQL = "Select * from County where CountyID = " & RS("County")
    set rs2 = Conn.Execute(subSQL)
   
    Do While not rs2.eof

    ' udskriver kommunebaren
    Response.Write "<tr bgcolor='0c3c63'><td colspan='5'><span class='style1'>" & ucase(rs2("Name")) & "</span></td></tr>"
   
    ' udskriver tekstbaren her
    Response.Write "<tr>"
    Response.Write "<td width='271'><strong>Titel</strong></td>"
    Response.Write "<td width='96'><div align='center'><strong>Redigeret</strong></div></td>"
    Response.Write "<td width='97'><div align='center'><strong>Filer</strong></div></td>"
    Response.Write "<td width='96'><div align='center'><strong>Egenskaber</strong></div></td>"
    Response.Write "<td width='96'><div align='center'><strong>Slet?</strong></div></td>"
    Response.Write "</tr>"
 
        subsubSQL = "Select * from Pages where County = "& RS("County") &" and Main = 1"
        SET subsubRS = Conn.Execute(subsubSQL)

        Do while NOT subsubRS.EOF
            Response.Write "<tr>"
            Response.Write "<td><a href='../../../red.asp?pageid=" & subsubRS("pageid") & "'>" & subsubRS("Title") &"</a></td>"
            Response.Write "<td><div align='center'>" & FormatDateTime(subsubRS("edited"),2) & "</div></td>"
            Response.Write "<td><div align='center'><a href='Worktext.asp?pageid=" & subsubRS("Pageid") & "'><img src='../../Grafik/arbejdstekst.gif' alt='Relaterede filer for " & subsubRS("Title") & "' width='15' height='19' border='0'></a></div></td>"
            Response.Write "<td><div align='center'><a href='Properties.asp?pageid=" & subsubRS("Pageid") & "'><img src='../Grafik/egenskaber.gif' alt='Egenskaber for " & subsubRS("Title") & "' width='15' height='19' border='0'></a></div></td>"
            Response.Write "<td><div align='center'><a href='../Funktioner.asp?mode=deletepage&pageid=" & subsubRS("Pageid") & "'><img src='../../Grafik/slet_knap.gif' alt='Slet " & subsubRS("Title") & "' width='15' height='14' border='0'></a></div></td>"
            Response.Write "</tr>"
             
            subsubsubSQL = "Select * from Pages where County = "& RS("County") &" and Main = 2"
            SET subsubsubRS = Conn.Execute(subsubsubSQL)

            Do while NOT subsubsubRS.EOF
                    Response.Write "<tr>"
                    Response.Write "<td><a href='../../../red.asp?pageid=" & subsubsubRS("pageid") & "'>" & "- " & subsubsubRS("Title") &"</a></td>"
                    Response.Write "<td><div align='center'>" & FormatDateTime(subsubsubRS("edited"),2) & "</div></td>"
                    Response.Write "<td><div align='center'><a href='Worktext.asp?pageid=" & subsubsubRS("Pageid") & "'><img src='../../Grafik/arbejdstekst.gif' alt='Relaterede filer for " & subsubsubRS("Title") & "' width='15' height='19' border='0'></a></div></td>"
                    Response.Write "<td><div align='center'><a href='Properties.asp?pageid=" & subsubsubRS("Pageid") & "'><img src='../Grafik/egenskaber.gif' alt='Egenskaber for " & subsubsubRS("Title") & "' width='15' height='19' border='0'></a></div></td>"
                    Response.Write "<td><div align='center'><a href='../Funktioner.asp?mode=deletepage&pageid=" & subsubsubRS("Pageid") & "'><img src='../../Grafik/slet_knap.gif' alt='Slet " & subsubsubRS("Title") & "' width='15' height='14' border='0'></a></div></td>"
                    Response.Write "</tr>"
                   
            subsubsubRS.movenext
            loop
                   
        subsubRS.MoveNext
        loop
       
    rs2.movenext
    loop
   
   
RS.MoveNext
loop

    ' udskriver tekstbaren her
    Response.Write "<tr bgcolor='0c3c63'><td colspan='5'><span class='style1'>" & ucase("STANDARDSIDER") & "</span></td></tr>"
    Response.Write "<tr>"
    Response.Write "<td width='271'><strong>Titel</strong></td>"
    Response.Write "<td width='96'><div align='center'><strong>Redigeret</strong></div></td>"
    Response.Write "<td width='97'><div align='center'><strong>Filer</strong></div></td>"
    Response.Write "<td width='96'><div align='center'><strong>Egenskaber</strong></div></td>"
    Response.Write "<td width='96'><div align='center'><strong>Slet?</strong></div></td>"
    Response.Write "</tr>"
 
        SQL3 = "Select * from Pages where County = 0 AND Main = 1"
        SET rs3 = Conn.Execute(SQL3)

        Do while NOT rs3.EOF
            Response.Write "<tr>"
            Response.Write "<td><a href='../../../red.asp?pageid=" & rs3("pageid") & "'>" & rs3("Title") &"</a></td>"
            Response.Write "<td><div align='center'>" & FormatDateTime(rs3("edited"),2) & "</div></td>"
            Response.Write "<td><div align='center'><a href='Worktext.asp?pageid=" & rs3("Pageid") & "'><img src='../../Grafik/arbejdstekst.gif' alt='Relaterede filer for " & rs3("Title") & "' width='15' height='19' border='0'></a></div></td>"
            Response.Write "<td><div align='center'><a href='Properties.asp?pageid=" & rs3("Pageid") & "'><img src='../Grafik/egenskaber.gif' alt='Egenskaber for " & rs3("Title") & "' width='15' height='19' border='0'></a></div></td>"
            Response.Write "<td><div align='center'><a href='../Funktioner.asp?mode=deletepage&pageid=" & rs3("Pageid") & "'><img src='../../Grafik/slet_knap.gif' alt='Slet " & rs3("Title") & "' width='15' height='14' border='0'></a></div></td>"
            Response.Write "</tr>"
             
            SQL4 = "Select * from Pages where parent = " & rs3("pageid")
            SET rs4 = Conn.Execute(SQL4)

            Do while NOT rs4.EOF
                    Response.Write "<tr>"
                    Response.Write "<td><a href='../../../red.asp?pageid=" & rs4("pageid") & "'>" & "- " & rs4("Title") &"</a></td>"
                    Response.Write "<td><div align='center'>" & FormatDateTime(rs4("edited"),2) & "</div></td>"
                    Response.Write "<td><div align='center'><a href='Worktext.asp?pageid=" & rs4("Pageid") & "'><img src='../../Grafik/arbejdstekst.gif' alt='Relaterede filer for " & rs4("Title") & "' width='15' height='19' border='0'></a></div></td>"
                    Response.Write "<td><div align='center'><a href='Properties.asp?pageid=" & rs4("Pageid") & "'><img src='../Grafik/egenskaber.gif' alt='Egenskaber for " & rs4("Title") & "' width='15' height='19' border='0'></a></div></td>"
                    Response.Write "<td><div align='center'><a href='../Funktioner.asp?mode=deletepage&pageid=" & rs4("Pageid") & "'><img src='../../Grafik/slet_knap.gif' alt='Slet " & rs4("Title") & "' width='15' height='14' border='0'></a></div></td>"
                    Response.Write "</tr>"
                   
            rs4.movenext
            loop
                   
        rs3.MoveNext
        loop

    ' tabellen slutter her
    Response.Write "</table>"
End if

'/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


' superuser
If Session("Rank") = 2 then
SQL = "Select County from Pages WHERE County > 0 group by County "
SET RS = Conn.Execute(SQL)


    ' tabellen starter her
    Response.Write "<table width='100%' border='0' cellspacing='0' cellpadding='2'>"
   
Do while NOT RS.EOF
   
    subSQL = "Select * from County where CountyID = " & RS("County")
    set rs2 = Conn.Execute(subSQL)
   
    Do While not rs2.eof

    ' udskriver kommunebaren
    Response.Write "<tr bgcolor='0c3c63'><td colspan='5'><span class='style1'>" & ucase(rs2("Name")) & "</span></td></tr>"
   
    ' udskriver tekstbaren her
    Response.Write "<tr>"
    Response.Write "<td width='271'><strong>Titel</strong></td>"
    Response.Write "<td width='96'><div align='center'><strong>Redigeret</strong></div></td>"
    Response.Write "<td width='97'><div align='center'><strong>Filer</strong></div></td>"
    Response.Write "<td width='96'><div align='center'><strong>Egenskaber</strong></div></td>"
    Response.Write "<td width='96'><div align='center'><strong>Slet?</strong></div></td>"
    Response.Write "</tr>"
 
        subsubSQL = "Select * FROM Pages Left Join useraccess On Pages.pageid = useraccess.pageid WHERE useraccess.PageID = Pages.PageID AND useraccess.GroupID = " & Session("GroupID") & " AND Pages.Main = 1 AND lang =" & Session("language") & " AND Pages.County = "& RS("County")
        SET subsubRS = Conn.Execute(subsubSQL)

        Do while NOT subsubRS.EOF
            Response.Write "<tr>"
            Response.Write "<td><a href='../../../red.asp?pageid=" & subsubRS("pageid") & "'>" & subsubRS("Title") &"</a></td>"
            Response.Write "<td><div align='center'>" & FormatDateTime(subsubRS("edited"),2) & "</div></td>"
            Response.Write "<td><div align='center'><a href='Worktext.asp?pageid=" & subsubRS("Pageid") & "'><img src='../../Grafik/arbejdstekst.gif' alt='Relaterede filer for " & subsubRS("Title") & "' width='15' height='19' border='0'></a></div></td>"
            Response.Write "<td><div align='center'><a href='Properties.asp?pageid=" & subsubRS("Pageid") & "'><img src='../Grafik/egenskaber.gif' alt='Egenskaber for " & subsubRS("Title") & "' width='15' height='19' border='0'></a></div></td>"
            Response.Write "<td><div align='center'><a href='../Funktioner.asp?mode=deletepage&pageid=" & subsubRS("Pageid") & "'><img src='../../Grafik/slet_knap.gif' alt='Slet " & subsubRS("Title") & "' width='15' height='14' border='0'></a></div></td>"
            Response.Write "</tr>"
             
            subsubsubSQL = "Select * FROM Pages Left Join useraccess On Pages.pageid = useraccess.pageid WHERE useraccess.PageID = Pages.PageID AND useraccess.GroupID = " & Session("GroupID") & " AND Pages.Parent = " & rs("PageID") & " AND Pages.County = "& RS("County")
            SET subsubsubRS = Conn.Execute(subsubsubSQL)

            Do while NOT subsubsubRS.EOF
                    Response.Write "<tr>"
                    Response.Write "<td><a href='../../../red.asp?pageid=" & subsubsubRS("pageid") & "'>" & "- " & subsubsubRS("Title") &"</a></td>"
                    Response.Write "<td><div align='center'>" & FormatDateTime(subsubsubRS("edited"),2) & "</div></td>"
                    Response.Write "<td><div align='center'><a href='Worktext.asp?pageid=" & subsubsubRS("Pageid") & "'><img src='../../Grafik/arbejdstekst.gif' alt='Relaterede filer for " & subsubsubRS("Title") & "' width='15' height='19' border='0'></a></div></td>"
                    Response.Write "<td><div align='center'><a href='Properties.asp?pageid=" & subsubsubRS("Pageid") & "'><img src='../Grafik/egenskaber.gif' alt='Egenskaber for " & subsubsubRS("Title") & "' width='15' height='19' border='0'></a></div></td>"
                    Response.Write "<td><div align='center'><a href='../Funktioner.asp?mode=deletepage&pageid=" & subsubsubRS("Pageid") & "'><img src='../../Grafik/slet_knap.gif' alt='Slet " & subsubsubRS("Title") & "' width='15' height='14' border='0'></a></div></td>"
                    Response.Write "</tr>"
                   
            subsubsubRS.movenext
            loop
                   
        subsubRS.MoveNext
        loop
       
    rs2.movenext
    loop
   
   
RS.MoveNext
loop

    ' tabellen slutter her
    Response.Write "</table>"
End if

'/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
%>
Avatar billede pfp Nybegynder
17. november 2003 - 14:42 #16
Som du kan se har jeg lavet det sådan at det er forskelligt alt efter om man er logget ind som administrator eller superbruger....
Avatar billede festy Nybegynder
17. november 2003 - 15:12 #17
Jeg kigger lige nærmere på den når jeg kommer hjem fra arbejde, ca kl. 19.
Avatar billede pfp Nybegynder
17. november 2003 - 15:14 #18
Okay det lyder alletiders
Avatar billede festy Nybegynder
17. november 2003 - 19:35 #19
Får du stadig fejlen:
Item cannot be found in the collection corresponding to the requested name or ordinal?
Avatar billede pfp Nybegynder
17. november 2003 - 21:53 #20
Nej jeg får ingen fejl nu, men den viser bare ingen sider. Det er dælme mystisk..
Avatar billede pfp Nybegynder
17. november 2003 - 21:54 #21
Du er vel ikke på Messenger eller ICQ?
Avatar billede festy Nybegynder
17. november 2003 - 21:57 #22
jo messenger: penthouse@ishoejby.dk
Avatar billede pfp Nybegynder
18. november 2003 - 12:35 #23
Hej Anders,

Jeg har fået det hele til at spille nu.

Følgende SQL:
subsubsubSQL = "Select * FROM Pages Left Join useraccess On Pages.pageid = useraccess.pageid WHERE useraccess.PageID = Pages.PageID AND useraccess.GroupID = " & Session("GroupID") & " AND Pages.Parent = " & rs("PageID") & " AND Pages.County = "& RS("County")


Skulle rettes til:
subsubsubSQL = "Select * FROM Pages Left Join useraccess On Pages.pageid = useraccess.pageid WHERE useraccess.PageID = Pages.PageID AND useraccess.GroupID = " & Session("GroupID") & " AND Pages.Parent = " & rs("PageID") & " AND Pages.County = "& SubSubRS("County")

Så det var bare en dum lille fejl der forhindrede det sidste i at fungere.

Du får mange tak hjælpen.

/pfp
Avatar billede festy Nybegynder
18. november 2003 - 17:47 #24
np :-)
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