webForumDet fria alternativet

Hur skall SQL satsen se ut på min nyhetssida

ASP

7 svar · 284 visningar · startad av sven

Medlem sedan aug. 2001383 inlägg
Frågan#1

Hej

Jag behöver lite tänkejobb för mitt tänk har tagit slut.

Min databas innehåller rubrik, information, datum, kategori och naturligtvis ett ID.

Jag tänkte en nyhetsida med en tabell innehållande två kolumner.
Vänster kolumnen innehåller dom två senaste inläggen där kategorin är satt till 'alla' och vänster kolumnen dom två senaste inläggen där kategorin är satt till 'grupp'

Hur skall jag göra?

Medlem sedan feb. 20022 594 inlägg
#2

SQL-sats till vänstra kolumnen:
strSQL = "SELECT * FROM tblNews WHERE kategori = 'alla' ORDER BY datum desc"

SQL-sats till högra kolumnen:
strSQL = "SELECT * FROM tblNews WHERE kategori = 'grupp' ORDER BY datum desc"

Medlem sedan apr. 20022 743 inlägg
#3

hmm.. detta är inte testat utan bara skrivet direkt ur huvudet men nått sånt här kanske:

<%
Response.Write "<table>" &_
   "<tr>" &_
   "<td>"

Set rs = Conn.Execute("Select * From TABELLEN Where kategori = 'alla' Order By ID Desc")

If Not rs.EOF Then
	Do Until rs.EOF
		
		Response.Write rs("rubrik")
		rs.MoveNext

	Loop
End If

rs.Close: Set rs = Nothing

Response.Write "</td>" &_
   "<td>"

Set rs = Conn.Execute("Select * From TABELLEN Where kategori = 'grupp' Order By ID Desc")

If Not rs.EOF Then
	Do Until rs.EOF
		
		Response.Write rs("rubrik")
		rs.MoveNext

	Loop
End If

rs.Close: Set rs = Nothing

Response.Write "</td>" &_
   "</tr>" &_
   "</table>"
%>

som sagt, inte testat men kankse nått att jobba vidare med iallafall?

Medlem sedan juni 200032 967 inlägg
#4

Bygger vidare en liten aning på Ekströms exempel, för att få koden att begränsa sig till två poster på varje ställe.

strSQL = "SELECT TOP 2 * FROM tblNews WHERE kategori = 'alla' ORDER BY datum desc, ID"

strSQL = "SELECT TOP 2 * FROM tblNews WHERE kategori = 'grupp' ORDER BY datum desc, ID"

Jag har lagt till ID som sekundär sortering. Det beror på en liten egenhet Access har att ibland returnera fler poster än det antal som specificerats i TOP, om inte fältet som används som förstasortering alltid är unikt. Men, du kanske inte behöver en andrahandssortering. Jag vet inte hur ditt datumfält ser ut.

Mvh,

Medlem sedan aug. 2001383 inlägg
#5

Jo @anders... ungefär så hade jag funderat ut oxå.. (inte secundära sorteringen då)
Men hur gör man med loopen då? Tänker att man måste väl loopa båda SQL satserna och då får mitt huvud ännu mer problem.

Medlem sedan aug. 2001383 inlägg
#6

Är det någon som kan hjälpa mig med loopen?

Medlem sedan dec. 200012 464 inlägg
#7
strSQL1 = "SELECT TOP 2 * FROM tblNews WHERE kategori = 'alla' ORDER BY datum desc, ID"

strSQL2 = "SELECT TOP 2 * FROM tblNews WHERE kategori = 'grupp' ORDER BY datum desc, ID" 

set rs1 = connect.execute(strSQL1)
set rs2 = connect.execute(strSQL2)
if not rs1.eof or not rs2.eof then
response.write "<table>"
for i = 1 to 2
response.write "<tr>"
if not rs1.eof then
response.write "<td>" & rs1("rubrik") & "</td>"
rs1.movenext
else
response.write "<td></td>"
end if
if not rs2.eof then
response.write "<td>" & rs2("rubrik") & "</td>"
rs2.movenext
else
response.write "<td></td>"
end if
response.write "</tr>"
next
resonse.write "</table>"
end if
Medlem sedan aug. 2001383 inlägg
#8

Tackar LarsG
Det fattades ett p :) men annars flöt det på som Helge å...

Nu skall jag bara mackla in resten av koden...

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)