webForumDet fria alternativet

Senastebesökare

38 svar · 643 visningar · startad av antar

antarMedlem sedan dec. 2001289 inlägg
#1

Har ett fält med namnet Senastebesökare och inne i fältet står det Pelle,Gustav,Erik,Bannan undrar hur man gör för att få det se ut så här: Pelle,Erik,Bannan dvs ta bort en medlem i innehållet!

EkströmMedlem sedan feb. 20022 594 inlägg
#2

Du kan ju göra replace:a "Gustav," med "", eller vad menar du? ;)

Fattar inte mycket.

CoreXMedlem sedan sep. 2001105 inlägg
#3

Gör såhär

arr = Split(Senastebesökare,",")
For i=0 To Ubound(arr)
If not arr(i) = "gustav" Then
newstr = newstr & arr(i) & ","
End If
Next

Bara ersätt dina variabler så skall det funka =)

antarMedlem sedan dec. 2001289 inlägg
#4

jag har det där lagrad i databasen och jag vill ta bort användarnamn i själva fältet med formulär som jag typ skriver Gustav så ska Gustav gå bort!

CoreXMedlem sedan sep. 2001105 inlägg
#5

arr = Split(Senastebesökare,",")
For i=0 To Ubound(arr)
If not arr(i) = Request.Form("Namn") Then
newstr = newstr & arr(i) & ","
End If
Next

Connect.Execute("UPDATE tabell SET Senastebesökare = '"& newstr &"'")

antarMedlem sedan dec. 2001289 inlägg
#6

kan nån fixa till koden?

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../Database/Medlemmar.mdb")&""
set recset = server.createobject("Adodb.recordset")
sql = "select * from medlemmar"
recset.open sql,connect,3,3
arr = Split(recset("Senastebesokare"),",") 
For i=0 To Ubound(arr) 
If not arr(i) = Request.Form("Anvandarnamn") Then 
newstr = newstr & arr(i) & "," 
End If 
Next 

Connect.Execute("UPDATE Medlemmar SET Senastebesokare = '"& newstr &"'")
connect.close
set connect = nothing
OveRRidEMedlem sedan feb. 200112 078 inlägg
#7

antar skrev:

kan nån fixa till koden?

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../Database/Medlemmar.mdb")&""
set recset = server.createobject("Adodb.recordset")
sql = "select * from medlemmar"
recset.open sql,connect,3,3
arr = Split(recset("Senastebesokare"),",") 
For i=0 To Ubound(arr) 
If not arr(i) = Request.Form("Anvandarnamn") Then 
newstr = newstr & arr(i) & "," 
End If 
Next 

Connect.Execute("UPDATE Medlemmar SET Senastebesokare = '"& newstr &"'")
connect.close
set connect = nothing

Gärna. Om du säger vad som är fel först.

antarMedlem sedan dec. 2001289 inlägg
#8

Gustav går inte bort och bli dubbletter i Senastebesokare och plus att allas senastebesokare får samma värde dvs Gustav,Per,Ola i alla fälten!

solbulleMedlem sedan mars 20015 287 inlägg
#9

Du får i din sqlfråga lägga till en "Where-sats" så att du bara plockar ut en viss persons besökare, eller loopa dig igenom hela databasen.
Kanske det iofs är bäst att baka ihop denna kod med den kod som lägger till den senaste besökare, på så sätt uppstår så att säga aldrig problemet.

antarMedlem sedan dec. 2001289 inlägg
#10

jag vill att Gustav ska gå bort i alla post!!

solbulleMedlem sedan mars 20015 287 inlägg
#11

solbulle skrev:

...eller loopa dig igenom hela databasen...

solbulle skrev:

...
Kanske det iofs är bäst att baka ihop denna kod med den kod som lägger till den senaste besökare, på så sätt uppstår så att säga aldrig problemet.

cyprysMedlem sedan dec. 20003 563 inlägg
#12

WHERE NOT namn = 'Gustav' ?

antarMedlem sedan dec. 2001289 inlägg
#13

vad menar du med where not Namn = 'Gustav' jag vill ju ta bort alla Gustav i varjes Senastebesokare post!

antarMedlem sedan dec. 2001289 inlägg
#14

eller jo nu funkar det tror jag men alla poster i Senaste besokar fältet blir samma!

OveRRidEMedlem sedan feb. 200112 078 inlägg
#15

Det du har gjort är att du har målat in dig i ett hörn, det är det klassiska 'databas i databasen'-problemet du har utsatt dig för.

Att skapa en sträng som innehåller ett antal användarnamn och separera dem med t.ex. kommatecken för att sedan gå in och ändra i den strängen, ger givetvis upphov till problem.

Lägg det där i databasen istället, i en relationstabell, då slipper du alla problem. Då behöver du inte ens ha användarnas namn i denna tabell, det räcker med deras UserId:s.

cyprysMedlem sedan dec. 20003 563 inlägg
#16

:)
Det lättaste sättet är som OveRRide säger.
Istället för att gå en så lång väg som möjligt, försök att lägga in din funktion i en redan befintlig, i det här fallet, tabell.

Ett sätt att göra det på är att lägga till en kolumn i din inloggningstabell som heter senast inloggade av typen date och uppdatera den sedan med tidpunkten för varje användare och inloggning.
Skriv sedan en SQL-sats där du tar bort eventuella personer om du så önskar. T.ex. sig själv.

// 5 senaste inloggade
SELECT TOP 5 * FROM medlemmar ORDER BY inloggningsdatum DESC
// 5 senaste inloggade utom dig själv som användare
SELECT TOP 5 * FROM medlemmar WHERE NOT userID = "&ditt_userID&" ORDER BY inloggningsdatum DESC
// Eller om vi fortfarande ska mobba Gurra.
SELECT TOP 5 * FROM medlemmar WHERE NOT username = 'Gustav' ORDER BY inloggningsdatum DESC
jboy_87Medlem sedan aug. 20011 099 inlägg
#17

varför göra det svårare?

OveRRidEMedlem sedan feb. 200112 078 inlägg
#18

jboy_87 skrev:

varför göra det svårare?

Vad menar du?

Tydligen verkar antar:s lösning svårare än den föredragna som presenteras ovan, eftersom han frågor om den i forumet. ;)

antarMedlem sedan dec. 2001289 inlägg
#19

jag vill ju använda den dära koden orkar inte hålla på och ändra med databasen!!

OveRRidEMedlem sedan feb. 200112 078 inlägg
#20

Lugn, det är bara förslag.

Men målar man vidare när man står i hörnet, har man snart tyvärr ingenstans att ha fötterna på, om du förstår vad jag menar. :)

136 ms totalt · 3 externa anrop · v20260731065814-full.102f7fcd
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)