webForumDet fria alternativet

ta bort x antal

ASP

6 svar · 313 visningar · startad av Thompa__85

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

Hejsan!
Jag har stött på ett litet problem.
jag vill att användarna endast ska kunna ha x antal inlägg i deras community-inkorg.

om vi säger att dom får ha 50 inlägg, men har 55. Då vill jag att den ska ta bort så det endast är 50 kvar.

Problemet är dock att max gränsen kan variera pga level hos anvädnaren, så jag har valt att spara värdet i variabeln Max.

Så Max - Överskotten, om det är nått vill säga.

Hur ser en sådan kod ut?

Glömde att den även ska ta bort dom äldsta inläggen oxå!

Tacksam för svar!

Mvh Andreas

Medlem sedan dec. 200012 464 inlägg
#2

Vilken databashanterare?

Medlem sedan mars 20033 686 inlägg
#3

Du kan ju ha en If-sats som kollar, genom en count-fråga, hur många meddelanden användaren har. Om den överstiger x antal meddelanden avbryts processen.

Medlem sedan aug. 2002600 inlägg
#4

LarsG skrev:

Vilken databashanterare?

Antar att du menar databas? Isåfall MySQL ;)

Medlem sedan aug. 2002600 inlägg
#5

magnusfernstrom skrev:

Du kan ju ha en If-sats som kollar, genom en count-fråga, hur många meddelanden användaren har. Om den överstiger x antal meddelanden avbryts processen.

Hmm okej, förstår ungefär. Men inte exakt hur jag ska koda det :/

Medlem sedan juni 2002256 inlägg
#6

En kort mall:

<%
' ...
' ...
' ...
' ^----- Databaskoppling m.m.

Dim maxPosts
maxPosts = 50

Dim count
Set count = Connect.Execute("SELECT Count(*) As msgs FROM tblMsgs WHERE userID=" &Session("userID"))

     If count("msgs") > maxPosts Then
     Dim rs
     Set rs = Connect.Execute("SELECT id FROM tblMsgs WHERE userID=" &Session("userID")& " ORDER BY id asc LIMIT " &(count("msgs") - maxPosts))
          Do Until rs.EOF
          Connect.Execute "DELETE FROM tblMsgs WHERE userID=" &Session("userID")& " AND id=" &rs("id"),,128
          rs.MoveNext
          Loop
     rs.Close()
     Set rs = Nothing
     End If

count.Close()
Set count = Nothing
%>

Eftersom man inte kan utnyttja ORDER BY-uttryck i DELETE-händelser så får man loopa ut och radera styckvis.

Medlem sedan dec. 200012 464 inlägg
#7

Antar att du menar databas?

Nej, jag menar databashanterare.

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