Forum > ASP > Generella frågor
Hej!
Jag vill kunna hämta ut och lista artiklar under speciella kategorier. Vet inte riktigt hur jag ska gå till väga för att göra detta. Jag har skapat detta i min databas:
Tabell: Kategori
Innehåller: ID | kategori | info Tabell: Artiklar
Innehåller: ID | rubrik | artikeln | kategoriID
Sedan försökt med följande kod för att hämta ut informationen:
<% SQL = "Select * FROM tbl_artiklar order by datum desc"
Set RecSet = Connect.Execute(SQL)
SQL2 = "Select * FROM kategori where kategori=" & RecSet("kategoriID")
Set RecSet2 = Connect.Execute(SQL2)
If RecSet.EOF Then
'felmess
Response.Write("Inga artiklar ännu.")
Else
Do Until recset.EOF
%>
<%=Recset("rubrik")%>
<%RecSet.MoveNext
Loop
Recset.close
Set Recset = Nothing
End IF
%>
Någon som skulle vilja hjälpa mig med detta då jag själv inte har en aning om hur man ska göra? :)
Såhär vill jag att det ska hämtas:
Kategori1
Rubrik på artikel1
Rubrik på artikel2
Kategori2
Rubrik på artikel1
Rubrik på artikel2
Mvh Magnus
| Skriv utÄr det bara en nod det kan vara? eller kan alla kategorier har ondliga under-kategorier?
Annars: Gör en JOIN frågar mot kategorin, Sortera Kategorin, Loopar => Om Kategorin är annolunda från förra loopen => Skriv ut den nya rubriken.
Så hade jag gjort i alla fall för att slippa så många SQL anrop.
Om du vill köra med den kod du har skrivit så måste du flytta in ditt recordset i loopen annars så kommer du aldrig få rätt SQL fråga.
Bara kolla igenom din kod:
SQL2 = "Select * FROM kategori where kategori=" & RecSet("kategoriID")
Set RecSet2 = Connect.Execute(SQL2)
If RecSet.EOF ThenOkej tack. Hur skapar jag en JOIN som du tycker att jag bör göra?
Det där med JOIN verkar vara krångligt, kan jag använda mig utav den kod jag påbörjat? och hur gör jag för att fixa till den? är inte speciellt bra på asp.
Det där med JOIN verkar vara krångligt, kan jag använda mig utav den kod jag påbörjat? och hur gör jag för att fixa till den? är inte speciellt bra på asp.
Annars: Gör en JOIN frågar mot kategorin, Sortera Kategorin, Loopar => Om Kategorin är annolunda från förra loopen => Skriv ut den nya rubriken.
...
Om du vill köra med den kod du har skrivit så måste du flytta in ditt recordset i loopen annars så kommer du aldrig få rätt SQL fråga.
Bara kolla igenom din kod:
SQL2 = "Select * FROM kategori where kategori=" & RecSet("kategoriID")
Set RecSet2 = Connect.Execute(SQL2)
If RecSet.EOF ThenEtt exempel är att du försöker loopar artiklarna och sen RecSet2 försöker du hämta kategori för det? Hur skall du egentligen presentera det?
JOIN är faktiskt rätt så smidigt och enkelt. Pröva att läsa min artikel och se ifall det hjälper:
han har fått ett korrekt på aspsidan.
Mycket bra artikel Shadi, nu efter jag läst den fungerar det fin fint med JOIN:)
En liten sak, om man vill sortera rubrikerna efter datum så att nyast hamnar högst upp under alla kategorier, hur går jag tillväga då?
Testade med detta men det fungerade inte:
SQL = "SELECT k.kategori, r.rubrik, r.datum FROM tblKategori k INNER JOIN tblArtiklar r ON k.kategori = r.kategoriId ORDER BY k.kategori, r.rubrik, r.datum desc"
Du vill sortera från kategori först, det vill du för att få en gruppering snyggt, sen flyttar du på rubrik och datum, för just nu säger du:
Sortera Kategori sen sortera du för rubrik och sist datumet om det skulle vara samma rubrik på två artiklar.
SQL = "SELECT k.kategori, r.rubrik, r.datum FROM tblKategori k INNER JOIN tblArtiklar r ON k.kategori = r.kategoriId ORDER BY k.kategori, r.datum DESC, r.rubrik"
Tack det fungerade!
Kan jag putta in ett WHERE någonstans som Shadi gjorde i sin artikel för att plocka ut ett speciellt id? Det jag skulle vilja är att också kunna hämta ut endast de artiklar som har teori = t.
Försökte med detta:
SQL = "SELECT k.kategori, r.datum, r.rubrik, r.ID, r.teori FROM tblKategori k INNER JOIN tblArtiklar r ON k.kategori = r.kategoriId WHERE r.teori = t ORDER BY k.kategori, r.datum DESC, r.rubrik, r.ID"
Fast det fungerade inte.
Om teori är en bokstav så är det:
SQL = "SELECT k.kategori, r.datum, r.rubrik, r.ID, r.teori FROM tblKategori k INNER JOIN tblArtiklar r ON k.kategori = r.kategoriId WHERE r.teori = 't' ORDER BY k.kategori, r.datum DESC, r.rubrik, r.ID"
Tack så hemskt mycket voigtan! Nu ska jag inte ställa mer dumma frågor förhoppningsvis:P
Tack så hemskt mycket voigtan! Nu ska jag inte ställa mer dumma frågor förhoppningsvis:P