webForumDet fria alternativet

Senaste inlägget

ASP

15 svar · 535 visningar · startad av Mini

Medlem sedan apr. 200227 inlägg
Frågan#1

Hej!

Om man har ett scriptet som radar upp dom senaste inläggen
ser det ut ungfär så här:
Response.Write("<a Href=read.asp?id=" & objRs("ID") & ">" & Left(objRs("rubrik"), 15) & "...</a><BR>")
Men om senaste inlägget är ett svar, då går han ju in på det och så kan man svara på ett svar, och så ska det ju inte vara...

Men kan man göra så då att man har så han radar upp efter ref_id först men om det står 0 där så går han till id och radar upp den som har ref_id 0?

Medlem sedan feb. 20012 412 inlägg
#2

Nu vet jag inte om jag förstod dig rätt, men om du har en flagga i tabellen som anger om det är orginalinlägg eller ett svar. Använder du access så stödjer den boelska värden, men om du använder mysql kan du ha 1 som true och 0 som false.

Medlem sedan apr. 200227 inlägg
#3

Access

använder jag... och jag har så att

ID | Ref_id
1 0 <--- Det är ett eget inlägg
2 1 <--- Det är ett svar på ett inlägg, siffran hör till id:et som eh inläggt
3 1 <--- Det är ett svar på ett inlägg
4 0 <--- Det är ett eget inlägg

Och nu går han efter bara ID, men då går han in på svar, och då svarar dom på ett svar ju.. Men då tänkte jag så att först följer dom ref_id, men om ref_id är 0 så går han över till id..

Om det är det du menar med boelska värden ("vad det nu är"), hur gör man då Jörgen?

Medlem sedan apr. 200227 inlägg
#4

Ingen som vet?

Någon som förstår hur jag menar och vet hur man kan göra?

Medlem sedan juni 20003 076 inlägg
#5

du förstod nog han rätt, har du testat enligt principen du själv beskrev?
boelska värden menas med att true eller false retuneras i din kod:

if objRs("kontroll") = true then
Response.Write("<a Href=read.asp?id=" & objRs("ID") & ">" & Left(objRs("rubrik"), 15) & "...</a><BR>")
end if

och så gör du rs("kontroll") till en checkbox i databasen.
Medlem sedan feb. 20012 412 inlägg
#6

du förstod nog han rätt, har du testat enligt principen du själv beskrev?

Jo, det har jag. Har själv byggt ett forum snarlikt detta.

Om det är det du menar med boelska värden ("vad det nu är"), hur gör man då Jörgen?

Om du förklarar lite bättre hur sin tabellstruktur och uppbyggnad ser ut så är det lättare att förklara, dessutom slipper man förklara flera gånger pga missförstånd.

Boelska värden är värden av typen true och false.

Medlem sedan juni 20003 076 inlägg
#7

du förstod nog han rätt, har du testat enligt principen du själv beskrev?

var riktat till Mini :)

Medlem sedan apr. 200227 inlägg
#8

Nu så

Förlåt!
Eh, sorry grabbar.. jag är inte hemma här en alltså, jag har inte hållt på med asp mer en månad.. html ca 2 månader...,

JörgenHP: jag förstår ej riktigt vad du menar med tabellstruktur, så jag har lite svårt att förklara den.

Men så här ser koden ut iaf..

<%

sDBName= "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("scripts/db/forum.mdb") & ";pwd=losen32"
Set objDB = Server.CreateObject("ADODB.Connection")
objDB.Open sDBName

Set objRS = objDB.Execute("select TOP 5 * from inlagg ORDER BY ID DESC")

If objRS.EOF Then
Response.Write("Inga en!")
objRS.Close
objDB.Close
Set objRS = Nothing
Set objDB = Nothing
Response.End
End If

Do While Not objRS.EOF

Response.Write("<a Href=read.asp?id=" & objRs("ID") & ">" & Left(objRs("rubrik"), 15) & "...</a><BR>")

objRS.MoveNext
Loop

objRS.Close
objDB.Close
Set objRS = Nothing
Set objDB = Nothing

%>

Medlem sedan feb. 20012 412 inlägg
#9

Hej,

(du kan inte stänga objRS innan du gör din loop.)

För att lösa ditt problem som jag förstått det kan du göra så här, om du har alla inlägg i samma tabell.

MessId (räknare, id på inlägget, unikt)
OrginalMess (true / false, true om det är ett orginalinlägg och false om det är ett svar)
ThreadId (numeriktvärde som anger ett MessId, vilket identifierar vilka svar som hör till vilket inlägg)
dteDate (datetime-fält som anger när inlägget gjordes)

När du sedan vill hämta och läsa en tråd så länkar du och hämtar efter ThreadId.

Med tabellstruktur menande jag hur dina fält ser ut i databasen. Om du skriver ner hur du byggt upp din databas får vi enklare att hjälpa dig.

Medlem sedan apr. 200227 inlägg
#10

Min tabell ser ut så här:

Id, ref_id, Email, Namn, Rubrik, Ip, datum, inlagg, svar

Medlem sedan juni 20003 076 inlägg
#11

har du fått ordning på koden? :D

Medlem sedan apr. 200227 inlägg
#12

Nej..

Nej, det har jag inte... ärligt talat så har jag inte en blekaste aning var jag ska sätta det JörgenHP nämde förut....Jag har försökt och försökt, men får ej någon ordning på det...

Medlem sedan feb. 20012 412 inlägg
#13

Hej,

först och främst måste du lägga till fält i tabellen som dels anger om det är ett svar eller ett orginalinlägg, samt en referens som anger till vilket inlägg svaren tillhör.

När du gjort det visar du tabellstrukturen igen.

mvh Jörgen

Medlem sedan apr. 200227 inlägg
#14

Hej,

Nu ser det ut så här:

Id, ref_id, Email, Namn, Rubrik, Ip, datum, inlagg, svar, svarstyp

ID, ränknare....
Ref_id, vilket inlägger till hör 0 om det är ett inlägg ID om det är ett svar
Email,
Namn,
Rubrik,
Ip,
datum,
inlagg, texten
svar, hur många svar det har...
svarstyp, nej, ja om det står nej så är det ett inlägg, ja då är det ett svarsinlägg

Är det så du menar Jörgen HP ?

Medlem sedan feb. 20012 412 inlägg
#15

Nu får du de 5 senaste orginalinläggen överst. Vill du ha så att det senaste besvarade inlägget är överst får du skapa en datumkolumn till som uppdateras med Now() varje gång någon svarar, och sedan sortera efter den istället.

Här är en tråd där det har varit uppe innan:

http://www.webforum.nu/showthread.php?s=&threadid=13989&highlight=inl�gg+forum

sql ="SELECT TOP 5 * FROM inlagg WHERE Ref_id = 0 ORDER BY ID DESC"

set rs = connect.execute(sql)

if rs.eof then

response.write "<p>Inget inlägg fanns</p>"

else

while not rs.eof 

Response.Write("<a href=read.asp?id=" & rs("ID") & ">" & Left(rs("rubrik"), 15) & "...</a><BR>") 

rs.movenext
wend
end if
Medlem sedan apr. 200227 inlägg
#16

Tack!

Tack Jörgen, det funkade utmärkt!

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