12. december 2002 - 11:50Der er
28 kommentarer og 1 løsning
Hvordan samler jeg ens overskrifter?
Hej
Når jeg laver en søgning på min tabel annoncer, så finder jeg nogle data som udskrives. Måden de bliver udskrevet på er at der er et id som passer til en kategori og der er et andet id som passer til en underkategori.
Du kan lave en SQL som gør det hele for dig...: Jeg har så vist muligt brugt samme kolonne og tabel navn i SQL'en, dog har jeg antaget at din samlings tabel som bruges v´til åbning af objRec hedder: kat_u_kat
SQL = "SELECT kategori.kategoriNavn, u_katagori.u_kategoriNavn, Count(u_katagori.u_kategoriNavn) AS antal " SQL = SQL & "FROM (kat_u_kat LEFT JOIN kategori ON kat_u_kat.Kategori = kategori.kategoriId) " SQL = SQL & "LEFT JOIN u_katagori ON kat_u_kat.u_kategoriId = u_katagori.id " SQL = SQL & "GROUP BY kategori.kategoriNavn, u_katagori.u_kategoriNavn;
Set Conn2 = Server.CreateObject("ADODB.Connection") Conn2.Open ConString Set rs = Conn2.Execute(SQL) do while not rs.EOF
<% Set objRec = Conn.Execute(StrSql) If Not (objRec.BOF Or objRec.EOF) Then %> <% i = 1 Do While Not objRec.EOF If i mod 2 = 0 then %> <tr bgcolor="#DDDDDD"> <td height="3" colspan="2"></td> </tr> <tr bgcolor="#DDDDDD"> <td colspan="2" valign="top"> <% Set Conn2 = Server.CreateObject("ADODB.Connection") Conn2.Open ConString
SQL = "SELECT kategori.kategoriNavn, u_katagori.u_kategoriNavn, Count(u_katagori.u_kategoriNavn) AS antal " SQL = SQL & "FROM (annoncer LEFT JOIN kategori ON annoncer.Kategori = kategori.kategoriId) " SQL = SQL & "LEFT JOIN u_katagori ON annoncer.u_kategoriId = u_katagori.id " SQL = SQL & "GROUP BY kategori.kategoriNavn, u_katagori.u_kategoriNavn"
Det bliver udskrevet lige så mange gagne som der er records i objRec i dette styk kode, som loop'er gennem objRec.:
<% Set objRec = Conn.Execute(StrSql) If Not (objRec.BOF Or objRec.EOF) Then %> <% i = 1 Do While Not objRec.EOF If i mod 2 = 0 then %> <tr bgcolor="#DDDDDD"> <td height="3" colspan="2"></td> </tr> <tr bgcolor="#DDDDDD"> <td colspan="2" valign="top"> <% 'HER BLIVER DET UDSKREVET LIGE SÅ MANGE GANGE SOM RECORDS I objRec
Set Conn2 = Server.CreateObject("ADODB.Connection") Conn2.Open ConString
SQL = "SELECT kategori.kategoriNavn, u_katagori.u_kategoriNavn, Count(u_katagori.u_kategoriNavn) AS antal " SQL = SQL & "FROM (annoncer LEFT JOIN kategori ON annoncer.Kategori = kategori.kategoriId) " SQL = SQL & "LEFT JOIN u_katagori ON annoncer.u_kategoriId = u_katagori.id " SQL = SQL & "GROUP BY kategori.kategoriNavn, u_katagori.u_kategoriNavn"
Øhh det forstår jeg altså ikke helt! Der bliver loopet det antal gange der er noget i min objrec! Men hvorfor udskriver den den første objrec ens alle gangene?
Jeg prøver på en anden måde.. Det som udskriver fra rs er ikke lavet som et loop men udskriver kun den første record. Det som bliver loopet et objRec og inde i det loop åbes rs og udskirver den første record så derfor er de alle ens. Prøv kun har havde den del af koden som er vist her:
<% Set Conn2 = Server.CreateObject("ADODB.Connection") Conn2.Open ConString
SQL = "SELECT kategori.kategoriNavn, u_katagori.u_kategoriNavn, Count(u_katagori.u_kategoriNavn) AS antal " SQL = SQL & "FROM (annoncer LEFT JOIN kategori ON annoncer.Kategori = kategori.kategoriId) " SQL = SQL & "LEFT JOIN u_katagori ON annoncer.u_kategoriId = u_katagori.id " SQL = SQL & "GROUP BY kategori.kategoriNavn, u_katagori.u_kategoriNavn"
Jeg syntes det er lige meget hvad jeg prøver at loope på, så udskriver den kun første record??
Her er mine koder nu, men hvad gør jeg forkert??
<% Set objRec = Conn.Execute(StrSql) If Not (objRec.BOF Or objRec.EOF) Then %> <% 'i = 1 Do While Not objRec.EOF 'If i mod 2 = 0 then %> <tr bgcolor="#DDDDDD"> <td height="3" colspan="2"></td> </tr> <tr bgcolor="#DDDDDD"> <td colspan="2" valign="top"> <% Set Conn2 = Server.CreateObject("ADODB.Connection") Conn2.Open ConString
SQL = "SELECT kategori.kategoriNavn, u_katagori.u_kategoriNavn, Count(u_katagori.u_kategoriNavn) AS antal " SQL = SQL & "FROM (annoncer LEFT JOIN kategori ON annoncer.Kategori = kategori.kategoriId) " SQL = SQL & "LEFT JOIN u_katagori ON annoncer.u_kategoriId = u_katagori.id " SQL = SQL & "GROUP BY kategori.kategoriNavn, u_katagori.u_kategoriNavn"
Ok - nu har jeg fået det til at virke, men jeg kan ikke få felterne vil at skrife mellem to farver, som de gjorde før! Er det noget du kan finde ud af, du skal naturligvis nok få dine point, det har du fortjent??
Her er koderne der virker!
<% Set objRec = Conn.Execute(StrSql) If Not (objRec.BOF Or objRec.EOF) Then
Set Conn2 = Server.CreateObject("ADODB.Connection") Conn2.Open ConString
SQL = "SELECT kategori.kategoriNavn, u_katagori.u_kategoriNavn, Count(u_katagori.u_kategoriNavn) AS antal " SQL = SQL & "FROM (annoncer LEFT JOIN kategori ON annoncer.Kategori = kategori.kategoriId) " SQL = SQL & "LEFT JOIN u_katagori ON annoncer.u_kategoriId = u_katagori.id " SQL = SQL & "GROUP BY kategori.kategoriNavn, u_katagori.u_kategoriNavn"
SQL = "SELECT annoncer.ID, kategori.kategoriNavn, u_katagori.u_kategoriNavn, Count(u_katagori.u_kategoriNavn) AS antal " SQL = SQL & "FROM (annoncer LEFT JOIN kategori ON annoncer.Kategori = kategori.kategoriId) " SQL = SQL & "LEFT JOIN u_katagori ON annoncer.u_kategoriId = u_katagori.id " SQL = SQL & "GROUP BY kategori.kategoriNavn, u_katagori.u_kategoriNavn"
Men jeg skal lige hører noget. Når der nu er fx er 3 underkategorier, hvordan udskriver jeg så de 3??? Lige nu viser den kun ét id som den så udskriver!!
Den kan ikke hendte alle 3 ID ud når de er talt sammen. Så må du lave en SQL som hendter ID ud på den side om linkes til ud fra kategori og u_kategori.
Hej - jeg sidder lige og ser at der er noget galt, som jeg ikke lige kan gennemskue! Når jeg søger på et Keyword så leder jeg i tabellen annoncer, og hvis der findes noget i tabellen så udskrives strSql, men lige nu udskriver jeg ALT - lige meget hvad der bliver søgt på - hvorfor????
Her er koderne:
<% Set objRec = Conn.Execute(StrSql) If Not (objRec.BOF Or objRec.EOF) Then
Set Conn2 = Server.CreateObject("ADODB.Connection") Conn2.Open ConString
SQL = "SELECT annoncer.ID, annoncer.u_kategoriId, kategori.kategoriNavn, u_katagori.u_kategoriNavn, Count(u_katagori.u_kategoriNavn) AS antal " SQL = SQL & "FROM (annoncer LEFT JOIN kategori ON annoncer.Kategori = kategori.kategoriId) " SQL = SQL & "LEFT JOIN u_katagori ON annoncer.u_kategoriId = u_katagori.id " SQL = SQL & "GROUP BY kategori.kategoriNavn, u_katagori.u_kategoriNavn ORDER BY antal DESC"
Set rs = Conn2.Execute(SQL) do while not rs.EOF If blnBGColor = True Then strBGColor = "" blnBGColor = False Else strBGColor = "#DDDDDD" blnBGColor = True End If %> <td height="1" colspan="2" bgcolor="#CCCCCC"></td> <tr> <td height="3" colspan="2" bgcolor="<%=strBGColor%>"></td> </tr> <tr> <td colspan="2" valign="top" bgcolor="<%=strBGColor%>"><% Response.write "<a href=""seannonce.asp?id=" & rs("id") & "&uid=" & rs("u_kategoriId") & """>" & rs("kategoriNavn") & " >> " & rs("u_kategoriNavn") & "</a>" Response.write " (" & rs("antal") & " annoncer )" %> </td> </tr> <tr> <td height="3" colspan="2" bgcolor="<%=strBGColor%>"></td> </tr> <tr> </tr> <% rs.MoveNext() loop Conn2.Close Set Conn2 = Nothing Set rs = Nothing %> <% Else %> <tr> <td height="20"></td> </tr> <tr> <td> <div align="center">Der blev ikke fundet noget på denne søgning</div> </td>
Synes godt om
Ny brugerNybegynder
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.