webForumDet fria alternativet

Behöver hjälp med forum koder

ASP

16 svar · 376 visningar · startad av voigtann1

Medlem sedan juni 20019 519 inlägg
Frågan#1

Har ett forum som ungefär ser ut så här:
--- forums
[ID] - Räknare
[Namn] - Text
[Topic] - JA/NEJ
[info] - PM
[forumid] - Tal

Jag har gjort så om Topic är JA så ska den vara en rubrik annars ska den komma där FORUMID vara det ID topicen är.. hur gör man det???

Det var min första fråga.
Hur gör man så att forumet ska räkna antal SVAR och antal INLÄGG????

Medlem sedan dec. 1999707 inlägg
#2

Första frågan: Varför inte helt enkelt bara låta Topic vara ett sträng-fält? Om det är null eller nollängd så visas id:t.

Andra frågan: Du lägger till en främmande nyckel som pekar på ett annat foruminlägg. Om det är Null (eller noll) så är det en ny tråd annars pekar det på en tråd (eller ett annat inlägg om du ska ha forumet multitrådat).

Sedan får du trixa med lite sql-frågor som jag inte kan i huvudet men du får lägga en join som joinar trådarna med dess svar. Dvs tab1.ID = tab2.ParentID. Hoppas du förstår...

Medlem sedan juni 20019 519 inlägg
#3

Fattar inte riktigt första svaret... den andra svaret ger lite mer men känns ändå lite för lite..

Medlem sedan dec. 1999707 inlägg
#4

Tror jag missförstod dina frågor....

Med första frågan ska du alltså visa trådens rubrik om det är ett svar, eller?

Andra frågan hade du ju redan det där fältet jag sa att du skulle lägga till. [forumid] Ska se om jag kan illustrera med ett sql-uttryck. I'll be back! :)

Medlem sedan juni 20019 519 inlägg
#5

Första frågan ex:

WEBB(ID1) <- Det är rubriken gjorde som du sa sätta den som 0
> ASP <- Topics som ska vara under WEBB som har ID=1
> PHP <- Topics som ska vara under WEBB som har ID=1
NY RUBRIK(ID20)
> Lite av varje

Medlem sedan juni 20019 519 inlägg
#6

EN FRÅGA TILL!
Jag tror jag har kommit på en lösning till det här men jag vet inte hur jag ska kunna göra det:

På forumet ska det finnas "admins" eller "Moderator" som det heter här. Jag hade tänkt mej med ett tal-system eller kanske ID system för dom som är admins där

I medlem fliken så har jag en som heter admin (tal)
hur ska jag göra så att tex Pelle är moderator på ASP och PHP medan olof är moderor för ASP bara... tack på förhand

Medlem sedan juni 20019 519 inlägg
#7

En sak till kan man får ner denna kod på något sätt?? för det blir rätt mycket rs som är öppna....

<%
SQL = "select * from forums"
Set RS = Databas.Execute(SQL)
Do While NOT RS.EOF
	SQL = "select count(*) AS Count_inlagg from topics where forum_id = " & RS("id")
	Set RS_count = Databas.Execute(SQL)
	SQL = "select count(*) AS Count_inlagg2 from topics where svar_id = " & RS("id")
	Set RS_count2 = Databas.Execute(SQL)
	If RS_count("count_inlagg") <> 0 then
		SQL = "select datum from topics where forum_id = " & RS("id")
		SQL = SQL & " order by datum DESC"
		Set RS_senaste = Databas.Execute(SQL)
		SQL = "select amne from topics where forum_id = " & RS("id")
		SQL = SQL & " order by datum DESC"
		Set RS_amne = Databas.Execute(SQL)
		SQL = "select skribent from topics where forum_id = " & RS("id")
		SQL = SQL & " order by datum DESC"
		Set RS_skribent = Databas.Execute(SQL)
	End if
%>
Medlem sedan dec. 1999707 inlägg
#8

Kom på att du kanske vill ha med datum för inläggen. Hur som helst så tror jag att jag kom fram med ett bra sql-uttryck för att få fram inläggen som du beskrev:

select
	forum.ID threadID,
	*,
	(select count(f.ID) from forum f where forum.ID = f.forumid) AntalSvar
from
	forum
where
	forumid = 0

UNION

select
	f2.ID threadID,
	f1.*,
	(select count(f.ID) from forum f where f1.ID = f.forumid) AntalSvar
from
	forum f1
	INNER JOIN
	forum f2
	ON
	f1.forumid = f2.ID
where
	f1.forumid > 0
order by
	threadID

PS. Det är PL/SQL.

Medlem sedan juni 20019 519 inlägg
#9

ehh... fattar inte mycket! har aldrig använt inner join eller vad det var.....

jag kan visa min kod:

<%
SQL = "select * from forums"
Set RS = Databas.Execute(SQL)
Do While NOT RS.EOF
	SQL = "select count(*) AS Count_inlagg from topics where forum_id = " & RS("id")
	Set RS_count = Databas.Execute(SQL)
	SQL = "select count(*) AS Count_inlagg2 from topics where svar_id = " & RS("id")
	Set RS_count2 = Databas.Execute(SQL)
	If RS_count("count_inlagg") <> 0 then
		SQL = "select datum from topics where forum_id = " & RS("id")
		SQL = SQL & " order by datum DESC"
		Set RS_senaste = Databas.Execute(SQL)
		SQL = "select amne from topics where forum_id = " & RS("id")
		SQL = SQL & " order by datum DESC"
		Set RS_amne = Databas.Execute(SQL)
		SQL = "select skribent from topics where forum_id = " & RS("id")
		SQL = SQL & " order by datum DESC"
		Set RS_skribent = Databas.Execute(SQL)
	End if
%>

<% if rs("forumid") = "0" then %>
RUBRIKEN: <b><%=RS("namn")%></b><br>
<%else %>
 >> <a href="readforum.asp?id=<%rs("ID")"><%=RS("namn")%></a><br>
<%end if%>
Medlem sedan dec. 1999707 inlägg
#10

Verkar lite jobbigt med alla de där anropen när det bara behövs ett.

Medlem sedan sep. 20005 700 inlägg
#11

angående frågan med admins.
sätt id's för alla olika delar, inte någonstans i koden, utan på ett papper eller nånstans så att du vet vad delarna har för siffra
om du lägger till en del, ska den ha siffran som föregående hade
* 2

ASP = 1
PHP = 2
Perl = 4
Python = 8
etc

sen summerar man varje dels siffra för att lägga till hos administratören. Ska pelle vara admin för PHP och Perl så ska han ha rättigheten 6 ( 2+4 ).

för att sedan se vad administratören har för rättigheter:

admtal = Pelles_rättigheter 'i detta fall 6
tmp = 16
Dim admarray(8) 
admarray(1)=0
admarray(2)=0
admarray(4)=0
admarray(8)=0
Do until admtal < 1

tmp = tmp / 2
if int(admtal) >= tmp then
	admtal = admtal - tmp
	admarray(tmp) = 1
end if
Loop

kör man det så blir admarray(2) och admarray(4) satt till 1, dvs han har rättigheter där (php och perl)
svårt?, kanske finns ett smidigare sätt, men så har jag iaf löst det på ett ställe, dessutom e jag skitdålig på att förklara.. hoppas du förstår idén iaf :)

Medlem sedan juni 20019 519 inlägg
#12

JAG GER UPP SNART! argh! har inte fått något att fungera som jag vill! argh!!! klupiga koder och blääää! Behöver STOOOR hjälp med denna:

<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("db/forum.mdb")
Session("dbasepath") = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
Databas.Open Session("dbasepath")
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.mess { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #000000; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; clip:  rect(   )}
.topic { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #FFFFFF; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; clip: rect( ) }
a {  font-weight: bold; font-variant: normal; text-transform: capitalize; color: #000000; text-decoration: underline}
-->
</style>
</head>
<body bgcolor="#534741" text="#000000">
<table width="700" border="1px" cellspacing="0" cellpadding="0" align="center" bordercolor="#000000">
  <tr bgcolor="#1B1411"> 
    <td width="50" class="topic">&nbsp;</td>
    <td width="360" class="topic"> Forum</td>
    <td width="45" class="topic" bgcolor="#1B1411" align="center">Inl&auml;gg</td>
    <td width="45" class="topic" align="center">Svar</td>
    <td width="200" class="topic">Senaste Inlägget</td>
  </tr>
<%
SQL = "select * from forums order by ID"
Set RS = Databas.Execute(SQL)
Do While NOT RS.EOF
	SQL = "select count(*) AS Count_inlagg from topics where forum_id = " & RS("id")
	Set RS_count = Databas.Execute(SQL)
	SQL = "select count(*) AS Count_inlagg2 from topics where svar_id = " & RS("id")
	Set RS_count2 = Databas.Execute(SQL)

	SQL = "select admin from members as admin WHERE "& rs("forumid") & " > 1"
	Set rs2 = Databas.Execute(SQL)

	SQL = "select username from members as users"
	Set rs3 = Databas.Execute(SQL)

	If RS_count("count_inlagg") <> 0 then
		SQL = "select datum from topics where forum_id = " & RS("id")
		SQL = SQL & " order by datum DESC"
		Set RS_senaste = Databas.Execute(SQL)
		SQL = "select amne from topics where forum_id = " & RS("id")
		SQL = SQL & " order by datum DESC"
		Set RS_amne = Databas.Execute(SQL)
		SQL = "select skribent from topics where forum_id = " & RS("id")
		SQL = SQL & " order by datum DESC"
		Set RS_skribent = Databas.Execute(SQL)
	End if
%>

<% if rs("forumid") = "0" then %>
  <tr bgcolor="#663333"> 
    <td colspan="5" height="20"><font class="topic"><b><%=RS("namn")%></b></font></td>
  </tr>

<%else %>
  <tr bgcolor="#918781"> 
    <td class="mess" bgcolor="#C0BAB5" align="center"> [NY] </td>
    <td class="mess"><a href="forum2.asp?id=<%=RS("id")%>"><%=RS("namn")%></a><br>
      <%=RS("info")%><br>
      Forumet leds av: <b>
<%
				DO UNTIL rs3.EOF
		IF (rs2("admin") AND rs("forumid")) > 1 then
		response.write ""&rs3("username") &" - "
		else
		end if
		Rs3.MoveNext
		loop
%></b><br>
    </td>
    <td class="mess" bgcolor="#C0BAB5" align="center"> <%=RS_count("count_inlagg")-RS_count2("count_inlagg2")%> </td>
    <td class="mess" bgcolor="#C0BAB5" align="center"> <%=RS_count2("count_inlagg2")%> </td>
    <td class="mess"><%If RS_count("count_inlagg") <> 0 then Response.write RS_senaste("datum") else response.write "-"%><br>
      <b>Tråd:</b>   <%If RS_count("count_inlagg") <> 0 then Response.write RS_amne("amne") else response.write "-"%><br>
      <b>Av:</b> <%If RS_count("count_inlagg") <> 0 then Response.write RS_skribent("skribent") else response.write "-"%></td>
  </tr>

<%end if%>
  <%
set recset = nothing
Set RS_count = Nothing
Set RS_senaste = Nothing
Set RS_count2 = Nothing

RS.MoveNext
Loop
Set RS = Nothing
%>
</table>
</body>
</html>

Där! snälla .. börja snart gråta

Medlem sedan juni 20019 519 inlägg
#13

hjälp! suttit sedan det sista posten och har fortfarande inte listat ut hur jag ska göra..

Medlem sedan juni 20019 519 inlägg
#14

ingen som kan hjälpa mej????

Medlem sedan juni 20019 519 inlägg
#15

Har fixat med följden nu tror jag...
2 problem kvar:
1 - Moderatorer
2 - Nytt Sen Senaste gången du var här?

Medlem sedan juni 20019 519 inlägg
#16

snälla hjälp mej... har provat med "mitt binäratal" som brukade fungera men nu går det inte alls =(((

Medlem sedan juni 20019 519 inlägg
#17

jag fortsätter med problem... nu tycks det inte fungera med
svar och inlägg saken på sidan..
Kan någon hjälpa mej??? är det ingen som har gjort något sånt här innan????

268 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)