Hej! Halloj!Re(svarsnummer): Rubrik
Jag har ett forum. Jag skulle vilja skriva ut rubriknamnet med ett nummer
efter när någon svarar på ett inlägg, tex första svaret ger "Re: Svar", det andra ger "Re(2): Svar", det tredje "Re(3): Svar" etc.... (Nu får alla svar rubriken "Re: Svar"
Som jag förstår det får man först göra en COUNT på hur många SvarsID det finns med Request.QueryString("idnummer")
och sedan lägga in det i en variabel, som sedan läggs in i value="Re: <%Response.Write(minRubrik), men jag får inte till det. ;-(
Klas
Här är ett utdrag ur koden:
<code>
'Här hämtas alla svarsinlägg i tråden med SvarsID=huvudinlägget
<% Show2 = "SELECT * FROM inlagg WHERE SvarsID= " & Request.QueryString("idnummer")
RecSet2.Open Show2, Databas, adOpenStatic, adLockOptimistic %>
'variabeln "minRubrik" tilldelas rubriknamnet
<%Dim minRubrik
minRubrik = RecSet("Rubrik") %>
' Här skriva nu ut "Re: rubriknamn" på för alla svar,
Rubrik:<br>
<input type="text" size="30" name="rubrik" value="Re: <%Response.Write(minRubrik)%>">
</TD>
</code>Sv: Re(svarsnummer): Rubrik
Visst är det kul med egna forum! :-)
Om jag förstått rätt så har du en databas där en tabell som heter "inlagg" innehåller samtliga inlägg som gjorts överhuvudtaget!? Du vill sedan att besökarna skall klicka på ett "ämne" och då komma till en sida som visar alla inlägg och svar för det ämnet (rubriken)?!
Förutom ett internt id för alla meddelanden som "hör ihop" så måste du ha en variabel, ett fält i databasen som rangordnar meddelandena och svaren på något vis, t ex ett löpnummer där 0 är originalinlägget/frågan och 1-... är de följande svaren. Antingen det eller ett datumfält så du t ex kan ordna svaren i tidsordning där det äldsta inlägget är själva frågan.
Jag antar här att du ändå har ett datumfält för att visa ett inläggs datum (och t ex möjliggöra att visa vilka inlägg som är nya genom att jämnföra det datumet med den inloggades senaste inloggnings-datum, precis som här på PelleSoft).
Du behöver hämta lämplig data och sedan gå igenom varje svar och lägga in det på sidan, i ditt exempel lägger du in texten i textrutor (varför?) men jag gör ett enklare exempel med "ren" text nedan:
<code>
<%
Dim poRS 'Databas/RecordSet-objekt (innehåller hämtade data)
Dim psCN 'Kopplingssträng
Dim psSQL 'SQL-fråga för att hämta data
Dim piSvarsId 'Efterfrågat inläggs ID
Dim piCount 'Löpnummer
piSvarsId = Request.QueryString("SvarsId")
Set poRS = Server.CreateObject("ADODB.RecordSet")
psCN = "DSN=Databas" 'eller vad du nu har för koppling
'Skapa SQL-frågan, ange hellre fältnamnen separat istället för '*'
psSQL = "SELECT text, rubrik, datum FROM inlagg " _
& "ORDER BY datum ASC WHERE svarsid=" & piSvarsId
'Öppna en koppling mot databasen
poRS.Open psSQL, psCN, adOpenStatic, adLockOptimistic
'Kontrollera att data returnerades
If Not poRS.EOF Then
'Ja - skapa listan
Response.Write "<table>"
Do Until poRS.EOF
piCount = piCount + 1
Response.Write "<tr>"
'Är detta det första inlägget?
If piCount = 1 Then
'Ja
Response.Write "<td>"
ElseIf piCount = 2
'Det andra inlägget = 1:a svaret!
Response.Write "<td>Re: "
Else
'Det 2:a svaret eller följande
Response.Write "<td>Re(" & piCount - 1 & "): "
End If
'Skriv ut rubriken och datum
Response.Write poRS(1) & " - " & poRS(2) & "</td></tr>"
'Skriv ut själva inlägget (dubbla citationstecken för att ett sådant skall
'skickas till klienten och omgärda värdet som colspan får. Tror det
'var så man skrev... (skriver ur minnet här...)
Response.Write "<tr><td colspan=""2"">" & poRS(0) & "</td></tr>"
'Skriv ut nästa inlägg
poRS.MoveNext
Loop
'Alla inlägg utskrivna, avsluta tabellen och objekten
Response.Write "</table>"
Set poRS = Nothing
Else
'Det fanns inga inlägg med aktuellt id = fel?!
Response.Write "Inga inlägg hittades!"
End If
%>
</code>
Ta koden med en nypa salt som sagt, skrev den utan att köra den på en webserver...
Lycka till!
// Qezlot