Ho risolto il problema del livello -1 relativo al contenuto utilizzando una select sulla secondatebella dove cat_idx = -.

Attualmente se nel db inserisco due contenuti con cat_idx uguali a -1 l'output che viene restituito è giusto, cioè i due contenuti li posiziona allo stesso livello delle categorie padri.

Ho riscontrato un altro piccolo problemino, cioè quando inserisco lo stesso cat_idx ai contenuti (diverso da -1) mi duplica la cartella che li contiene:



Uploaded with ImageShack.us

come posso risolvere?

Codice PHP:
                                                <ul id="ul-cat" class="filetree">
                                                    <%            
                                                        
sql="SELECT count(*) as totali FROM primatabella"
                                                        
Set rs conn.Execute(sql)
                                                        
ReDim arr(rs("totali"),9)
                                                        
sql "SELECT primatabella.cat_id, primatabella.cat_name, primatabella.cat_parent_id, primatabella.tot_subcat, secondatabella.page_id, secondatabella.page_title, secondatabella.page_content, secondatabella.reurl, secondatabella.cat_idx FROM primatabella LEFT JOIN secondatabella ON primatabella.cat_id = secondatabella.cat_idx ORDER BY primatabella.cat_parent_id"
                                                        
rs.close
                                                        Set rs 
conn.Execute(sql)
                                                        Do While 
rs.eof false
                                                            arr
(co,0)=rs("cat_id"
                                                            
arr(co,1)=rs("cat_name"
                                                            
arr(co,2)=rs("cat_parent_id"
                                                            
arr(co,3)=rs("tot_subcat"
                                                            
arr(co,4)=rs("page_id"
                                                            
arr(co,5)=rs("page_title"
                                                            
arr(co,6)=rs("page_content"
                                                            
arr(co,7)=rs("reurl"
                                                            
arr(co,8)=rs("cat_idx"
                                                            
co=co+1
                                                        rs
.Movenext
                                                        loop
                                                        rs
.close
                                                        set rs
=Nothing
                                                        call Stampafigli 
("-1",0
                                                        
Sub Stampafigli idpadrelivello)
                                                            
dim rip
                                                            
for rip 0 to ubound (arr,1)
                                                                if 
cint arr(rip,2) ) = cint (idpadrethen
                                                                    
if arr(rip,3) <= 0  Then

                                                    
%>
                                                                        [*]<
span class="folder"><%=arr(rip,1)%> (<%=arr(rip,3)%>)</span>
                                                    <%
                                                    
                                                                    Else
                                                    %>
                                                                        <
li class="closed"><span class="folder"><%=arr(rip,1)%> (<%=arr(rip,3)%>)</span>
                                                                            <
ul>
                                                                                <%
call Stampafigli cint(arr(rip,0)) ,livello+1)%>
                                                                            [/list]
                                                                        
                                                    <%
                                                                    
End If
                                                                
End If
                                                            
Next
                                                        End Sub
                                                        sql 
"SELECT * FROM primatabella WHERE cat_idx = -1"
                                                        
Set rs conn.Execute(sql)
                                                        do while 
not rs.eof
                                                        
If rs("cat_idx") = "-1" Then
                                                    
%>
                                                            [*]<
span class="file"><%=rs("reurl")%></span>
                                                    <%
                                                        Else
                                                        
End If
                                                        
rs.movenext
                                                        loop
                                                        rs
.close
                                                    
%>
                                                [/list]