Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Logga senaste besökare på ens profil...

Postades av 2002-06-24 23:29:39 - Magnus Berggren, i forum asp - allmänt, Tråden har 1 Kommentarer och lästs av 386 personer

Tjena!

Jag har kommit en bit på mitt lilla community och skulle vilja bygga på den lite.

Jag vill som användare kunna se de 5 senaste besökarna som sett min profil.

Så tänkte jag det.

tblAnvandare tblAnvBesok
--------------- --------------
idSmeknamn idAnvBesok
osv... idSmeknamn
fltDatumBesok

När man kommer in på hans profil så vill jag lägga till mitt idSmeknamn i hans tblAnvBesok-idSmeknamn.

Sen läser jag ut vilka som senast besökt sidan.

Är det rätt tankesätt?

Problemet är nu hur jag ska bygga SQL-satsen, är lite osäker hur jag ska göra.

Hoppas det finns någon här som kan hjälpa mig.

/Magnus


Svara

Sv: Logga senaste besökare på ens profil...

Postades av 2002-06-24 23:56:33 - Pelle Johansson

Eftersom du i tabellen användare har smeknamn är det onödigt att dubbellagra detta samt om användaren byter sitt smeknamn kommer du få olika resultat när du tittar i tabellen anvBesök.

En quick & dirty lösning:
Se istället till att lägga till idAnvBesok i tabellen användare och låt fältet vara av typen text. När en användare har varit där så har du personens id och då lägger du till det i den strängen. Det du kommer förlora här är NÄR personen tittade men jag anser det inte så viktigt, eller?

Om vi tänker oss att användaren tittar på din sida och några tittade förrut så skulle textsträngen kunna se ut som följer:

12,14,21,155,444,

Alltså har användare 12,14,21,155 och 144 sett din sida där 12 var den senaste som besökte. Nu kommer olle in med nummer 52. Då ser du till att lägga 52 först med denna kod:

<code>
sql = "update tblAnvaendare set idAnvbesok = '" & visitorid & ",' + idAnvbesok where anvid = " & anvid

con.execute sql
</code>

Det som händer nu är att strängen fylls med 52 längst till vänster och sedan läggs tidigare värden på, alltså: 52,12,21,155,444

Vad som händer är att allting skjuts framåt och det bara byggs på och byggs på. Om fältlängden inte är längre än låt säga 40 så ser du till att du inte heller skickar in längre än 40 tkn för att undvika fel - exempelvis:


<code>
sql = "update tblAnvaendare set idAnvbesok = substring('" & visitorid & ",' + idAnvbesok,1,40) where anvid = " & anvid

con.Execute sql
</code>

Nu kanske du får plats med 8-9 poster och slipper fel och gör det med lite kod och sparar plats i databasen. Sedan när du hämtar ut detta så använder du bara split-kommandot eller skriver en select-sats med de poster som finns i den strängen:

<code>
Set rst=con.execute("select anvbesok from tblAnvaendare where anvid = " & anvid)
If Not rst.Eof Then
anvbesok = rst(0)
End If

sql = "select * from tblAnvaendare where anvid in(" & anvbesok & ") "
Set rst=con.Execute(sql)
</code>

Nu får du ett recordset med alla användare som besökt personen. Det kan tänka sig att du får fel och då beror det troligen på att den sista posten kan vara "avhuggen" eftersom det är max 40 tecken och det kan bli vad som helst där.

Den andra varianten är att helt enkelt ha ett recordset som du föreslagit och istället för 3 fält så har du

<code>
sql = "insert into tblAnvBesok (anvid, visitorid, datumbesok) values(" & anvid & "," & visitorid & ",#" & now & "#")
con.Execute sql
</code>

för att sedan läsa dessa poster så skriver du en join för att hämta namnen:

<code>
sql = "select top 5 anvid, förnamn,efternamn " & _
"from tblAnvaendare as a, tblAnvBesok as b " & _
"where a.anvid = b.anvid " & _
"and a.anvid = " & anvid & " " & _
"order by b.datumbesok desc"

Set rst=con.Execute(sql)

Do While Not rst.Eof
Response.Write rst("förnamn") & " " & rst("efternamn") & "<br>"
rst.MoveNext
Loop

</code>

anvid är vilka som besökt anvid:s sida och sen får du ut de 5 senaste besöken för den specifika användaren.

Mer detaljerat svar än detta kan jag nog inte ge dig..
/Pelle


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 831
27 960
271 761
5 485
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies