14. december 2004 - 15:58Der er
7 kommentarer og 1 løsning
Random overskrift.. oO Let spørgsmål, kom glad
Riiiite.. Okay, Arne regnede
strSQL = "SELECT bbstopic.ID AS id,bbstopic.topic AS topic,COUNT(*) AS cnt FROM bbstopic,bbsreply WHERE bbstopic.id=bbsreply.targettopicID GROUP BY bbstopic.ID,bbstopic.topic ;"
.. ud, som tæller antal poster i bbsreply, som har bbsreply.targettopicID, ens med bbstopic.ID.
Vil gerne hive arne - eller en af jer 100 hurtigere, lette point, hvis i løser følgende spørgsmål.
Første .asp site som brugeren kommer ind på er bbs.asp. Denne site lister bbscategory - dette er steder hvor de kan poste deres topics. I denne er der 2 stier: Community og Client. Som hver har et ID. Client = 1, Community = 2.
Klikker vi på Client, kommer vi ind på category.ASP?ID=1, hvorefter vi har arne's SQL-sætning til at hive topics'ne ud fra bbstopic og antal replies ud fra bbsreply.
Det virker skam her i "client", men går vi tilbage, og smutter ind under vores "community"; lister den stadig fra "client"-categorien.
Category.asp skal derfor bruge sin ID = Request("ID"), og bruge den til at fremtvinge de rigtige topics ;).
Her har i min kode:
<% ID = Request("ID") %>
<% Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT bbstopic.ID AS id,bbstopic.topic AS topic,COUNT(*) AS cnt FROM bbstopic,bbsreply WHERE bbstopic.id=bbsreply.targettopicID GROUP BY bbstopic.ID,bbstopic.topic ;" rs.Open strSQL, Conn %>
<% Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT bbstopic.ID AS id,bbstopic.topic AS topic,COUNT(*) AS cnt FROM bbstopic,bbsreply WHERE bbstopic.id=bbsreply.targettopicID AND categorytarget = " & ID & " GROUP BY bbstopic.ID,bbstopic.topic ;" rs.Open strSQL, Conn %>
Hvis du skal have rækker fra bbstopic med som ingen rækker har i bbsreply, så skal du nok have fat i en LEFT JOIN.
Noget a la:
strSQL = "SELECT bbstopic.ID AS id,bbstopic.topic AS topic,COUNT(bbsreply.targettopicID) AS cnt FROM bbstopic LEFT JOIN bbsreply ON bbstopic.id=bbsreply.targettopicID WHERE categorytarget = " & ID & " GROUP BY bbstopic.ID,bbstopic.topic ;"
tabelA LEFT JOIN tabelB ON tabelA.felt1=tabelB.felt2
betyder:
- tag alle rækker fra tabelA - hvis der er en række i tabelB som opfylder ON betingelsen så lig den ved siden af - hvis der ikke er en række i tabelB som opfylder ON betingelsen så fyld NULL i de kolonner
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.