webForumDet fria alternativet

Lite Tips Önskas Ang. mitt forum

ASP

13 svar · 373 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Frågan#1

Hej Svejs.

Ska just börja bygga Adminsystemet till mitt forum.

Har kommit på en del grejjer.

Bla, för "Senaste Inlägg" osv.

Som det är nu har jag en kolumn för Antal Svar, en för Senaste inlägg och en för senast ändrad (tid för senaste inlägg).

Koden för uppdatering av den delen:

strSQL = "UPDATE tbl_forum_subj SET Antal_Svar = Antal_Svar + 1, Senaste_Svar = '" & Replace(senaste_svar, "'", "''") & "', Senaste_Svar_Namn = '" & Replace(senaste_svar_namn, "'", "''") & "' WHERE ID LIKE '" & id & "'"

Den här snutten körs alltså från idan där man skriver ett nytt svar.

Det blir därimot problem om jag tar bort trådar, för då gäller ju inte dessa längre, vilket kommer innebära att ngt blir fel.

strSQL = "UPDATE tbl_forum_subj SET Antal_Svar = Antal_Svar - 1 WHERE ID LIKE '" & id & "'"

Det kan jag ju köra i min 'radera-tråd-fil', men för senaste inlägg mm.??

Skulle jag inte kunna köra två SQlsatser till i min loop för att lista trådarna?!

Typ:

strSQL = "SELECT Senaste_Svar TOP 1 FROM tabell"

Och...

strSQL = "SELECT Senaste_Svar_Namn TOP 1 FROM tabell"

Kan det tänkas funka?!

Om jag bara trycker in dom två i min loop, borde det inte funka bättre då?!

Sen undrar jag om TOP 1 plockar ut det SENASTE namnet, det som senast är inmatat alltså??

Medlem sedan juni 200032 967 inlägg
#2

Jag har inte tid att läsa hela inlägget just nu, men:

Sen undrar jag om TOP 1 plockar ut det SENASTE namnet, det som senast är inmatat alltså??

Det finns ingen anledning att använda TOP om man inte har med en ORDER BY. Så du väljer själv. Senast av vad? Tja, enligt den ordning du bestämmer.

mvh

Medlem sedan feb. 20034 441 inlägg
#3

Jaja, men om jag har order by Datum; efter då?

Jag vill ju plocka ut när TRÅDEN SENAST är ändrad, alltså när ngn senast skrivit ngt i tråden. Hänger ni med bättre?!

Medlem sedan jan. 20032 285 inlägg
#4

Menar du att du vill göra såhär?

SELECT TOP 1 Senaste_Svar, Senaste_Svar_Namn FROM tabell ORDER BY Datum DESC
Medlem sedan feb. 20034 441 inlägg
#5

Ehh, hmm, ja, fast tvärtom ska det väl vara:

strSQL= "SELECT Senaste_Svar, Senaste_Svar_Namn TOP 1 osv osv...

Fast det jag vill är ju att helst slippa dessa två kolumner i db'n (Senaste_Svar, Senaste_Svar_Namn).

Så istället med hjälkp av EDNAST SQL plocka ut dessa två, alltså plocka ut det SENASTE DATUMET en tråd har ändrats och vem som gjort det, hur ska jag göra?!

Medlem sedan jan. 20032 285 inlägg
#6

Nu fattar jag inte riktigt? Vill du bara plocka ut datumet eller vad vill du göra? Vilka andra kolumner har du i tabellen? Och nej, man skriver TOP 1 innan man skriver vilka kolumner man ska hämta ut. :)

Medlem sedan feb. 20034 441 inlägg
#7

Okej.

Som på Webforum, kolla när trådarna listas, där står det SENASTE INLÄGG, där står ett klockslag och ett nqmn står.

Det vill jag åstakomma.

Som jag har nu har jag alltså EN KOLUMN FÖR VARJE, en för klockslagm,, en för namnet.

Men man borde kunna, kmöra ngt i stil med:

SELECT TOP 1 Datum ORDER BY Datum DESC;

SELECT TOP 1 Skribent ORDER BY Datum DESC;

Om jag plockar med dom två i loopen, tas det ju ut för varje loop som görs.

Medlem sedan jan. 20032 285 inlägg
#8
strSQL = "SELECT TOP 1 Skripent, Datum ORDER BY Datum DESC"

Typ?

Medlem sedan feb. 20034 441 inlägg
#9

Men hur plockar jag sen ut dom då?
oRec.Value[0] ngnting eller vad`?

Medlem sedan mars 20023 561 inlägg
#10
oRec("Datum"), oRec("skribent") osv...

Vet inte om du använder oRec som namn på ditt recordset. Om du inte gör det får du byta ut det i koden mot motsvarande.

Medlem sedan feb. 20034 441 inlägg
#11

Men blir det verkligen så?! Nä'r jag ska plocka ut endast de senaste trådarna?!

Jag provar, hoppas det funkar ;))

Medlem sedan feb. 20034 441 inlägg
#12

Jo, det blir visst så, men jag måste köra dubbla rec'set's, efter som jag redan har ett till "huvudloopen", som listar övriga tråden.

Medlem sedan feb. 20034 441 inlägg
#13

Nu börjar jag bli trött, ingen verkar fatta vad jag menar, så:

I mitt forum ska jag m h a en eller två SQLfrågor plocka ut:

-Senaste Inlägget i en tråd
-Namn på den som gjort det senaste inlägget

Som här på wF, när trådarna listas, då står det till höger:

Senaste Inlägget:
datum bla bla
av: användare blabla

Hänger ni med nu?

Jag har TVÅ kolumner i min db för detta:

Senaste_Svar (Datum)
Senaste_Svar_Namn (Användare)

Loopen för att lista trådar ser ut såhär:

Set oRec = Server.CreateObject("ADODB.Recordset")

strSQL= "SELECT * FROM tbl_forum_subj WHERE Forum_ID = 'oppet' ORDER BY Datum DESC;"
strSQLspec = "SELECT 

oRec.Open strSQL, oConn, 1, 3
%>
<table width='100%' border='0' height='10'>
<tr><td height='10' width='50%' align='left' bgcolor='#FCFDCD'><b><u>Tråd</u></b></td><td width='20%' align='center' bgcolor='#FCFDCD'><b><u>Startad Av</u></b></td><td width='10%' align='center' bgcolor='#FCFDCD'><b><u>Svar</b></u></td><td width='20%' align='center' bgcolor='#FCFDCD'><b><u>Senaste Inlägg</u></b></td></tr>
<%
oRec.PageSize = 15 '<-- Här bestämmer du hur många inlägg det ska finnas på sidan
oRec.AbsolutePage = nextPage

Do until oRec.EOF OR rowCount = oRec.PageSize
rowCount = rowCount + 1

Response.Write("<tr><td height='10' width='50%' align='left'><font face='verdana' color='#000000' size='2'><a href='ladda_trad.asp?id=" & oRec("ID") & "'>" & oRec("Amne") & "</a></td><td width='20%' align='center' bgcolor='#FCFDCD'>" & oRec("Skribent") & "</td><td width='10%' align='center'>" & oRec("Antal_Svar") & "</td><td width='20%' align='right' bgcolor='#FCFDCD'></font><font face='verdana' color='#000000' size='1'>" & oRec("Senaste_Svar") & "<br>Av: " & oRec("Senaste_Svar_Namn") & "</font></td></tr><tr><td colspan='4' width='100%' height='5'></td></tr>")

Som jag har nu, för att hela tiden uppdatera de här uppgifterna, har jag i REPLYfilen:

strSQL = "UPDATE tbl_forum_subj SET Antal_Svar = Antal_Svar + 1, Senaste_Svar = '" & Replace(senaste_svar, "'", "''") & "', Senaste_Svar_Namn = '" & Replace(senaste_svar_namn, "'", "''") & "' WHERE ID LIKE '" & id & "'"

Men...

Om jag nu skulle ta bort en tråd, blir de fel, eftersom det som då står med senaste inlägget inte uppdateras.

Så DÄRFÖR vill jag istället plocka ut dessa m ha SQLfrågor OCH SKIPPA DE TVÅ KOLUMNERNA FRÖ DESSA UPPG.

Så, slutligen, kan ngn hjälpa mig med det här, för det är ju helt klart genomförbart, eftersom det finns här samt på ett antal andra forum på nätet.

Tack

Medlem sedan feb. 20034 441 inlägg
#14

Såhär gjorde jag:

Set oRec = Server.CreateObject("ADODB.Recordset")
strSQL= "SELECT * FROM tbl_forum_subj WHERE Forum_ID = 'oppet' ORDER BY Datum DESC;"
oRec.Open strSQL, oConn, 1, 3

Set oRec2 = Server.CreateObject("ADODB.Recordset")
strSQL2 = "SELECT TOP 1 Datum, Skribent FROM tbl_forum_sv WHERE Forum_ID = 'oppet' ORDER BY Datum DESC;"
Set oRec2 = oConn.Execute(strSQL2)

%>
<table width='100%' border='0' height='10'>
<tr><td height='10' width='50%' align='left' bgcolor='#FCFDCD'><b><u>Tråd</u></b></td><td width='20%' align='center' bgcolor='#FCFDCD'><b><u>Startad Av</u></b></td><td width='10%' align='center' bgcolor='#FCFDCD'><b><u>Svar</b></u></td><td width='20%' align='center' bgcolor='#FCFDCD'><b><u>Senaste Inlägg</u></b></td></tr>
<%
oRec.PageSize = 15 '<-- Här bestämmer du hur många inlägg det ska finnas på sidan
oRec.AbsolutePage = nextPage

Do until oRec.EOF OR rowCount = oRec.PageSize
rowCount = rowCount + 1

Response.Write("<tr><td height='10' width='50%' align='left'><font face='verdana' color='#000000' size='2'><a href='ladda_trad.asp?id=" & oRec("ID") & "'>" & oRec("Amne") & "</a></td><td width='20%' align='center' bgcolor='#FCFDCD'>" & oRec("Skribent") & "</td><td width='10%' align='center'>" & oRec("Antal_Svar") & "</td><td width='20%' align='right' bgcolor='#FCFDCD'></font><font face='verdana' color='#000000' size='1'>" & oRec2("Datum") & "<br>Av: " & oRec2("Skribent") & "</font></td></tr><tr><td colspan='4' width='100%' height='5'></td></tr>")
	
	oRec.MoveNext
Loop

Men nu plockar den inte ut för varje spec. tråd, utan alla blir samma, skriver jag ett nytt svar på en tråd, får ALLA TRÅDAR samma på "Senaste Inlägg"

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)