Avatar billede steen_hansen Forsker
11. april 2007 - 20:38 Der er 53 kommentarer og
1 løsning

Hent seneste

Jeg skal hive det dato/klokkeslet og navn ud på en side, så man kan se hvornår der senest er postet. Tabellerne med de relevante recordsets:

Tabel 1:
topicID
author
dato - varchar(19), gemmes som 11/04/2007 20:26:21

Tabel 2:
replyID
rchild
rauthor
rdato

Hvis der ikke er postet noget til RS("topicID"), er det rdato samt author, der skal udskrives.

Hvis der _er_ postet noget til RS("topicID"), skal den seneste rauthor og rdato udskrives.

Herefter skal dato/klokkeslet formatteres på denne måde:

<%
Function AddZ(ByVal vNumber)
    AddZ = CStr(vNumber)

If len(AddZ) < 2 Then _
    AddZ = "0" & AddZ
End Function

Function AddQ(ByVal nNumber)
    AddQ = CStr(nNumber)

    If len(AddQ) < 2 Then _
        AddQ = "0" & AddQ
End Function
%>

<%
Dim vCreated
vCreated = RStop("dato")
vCreated = addZ(day(vCreated)) & "-" & addZ(month(vCreated)) & "-" & year(vCreated) & " " & addZ(hour(vCreated)) & ":" & addZ(minute(vCreated)) & ":" & AddZ(Second(vCreated))

Dim qCreated
qCreated = RSsub("rdato")
qCreated = addQ(day(qCreated)) & "-" & addQ(month(vCreated)) & "-" & year(qCreated) & " " & addQ(hour(qCreated)) & ":" & addQ(minute(qCreated)) & ":" & AddQ(Second(qCreated))
%>

Hvis replyID = ""
<%=Server.HTMLEncode(vCreated)%>
Ellers
<%=Server.HTMLEncode(qCreated)%>

Det samme med hhv. author og rauthor

Der skal noget LIMIT 1 til, men jeg kan ikke få det til at makke ret.
Avatar billede fennec Nybegynder
12. april 2007 - 08:30 #1
1: Jeg vil kraftigt anbefale at du ændre dine datoe til at tilføre datetime datatypen i stedet for varchar. Det er en fejl at gemme datoer som tekst, da du mister muligheden for at bruge datofunktionerne.

2: Der behøves ikke noget limit. Afhængig af hvordan din kode ser ud, skal der bare laves en select. Går ud fra du har et loop, så det bliver noget i denne stil:

set rs1 = conn.execute("select * from Tabel 1")
while not rs1.eof
  set rs2 = conn.execute("select * from Tabel 2 where rchild="& rs1("topicID") &" order by id desc")
  if rs2.eof
    'Ingen underposter
    response.write rs1("author") & rs("dato")
  else
    'Udskriv sidste underpost
    response.write rs1("rauthor") & rs("rdato")
  end
  rs1.MoveNext
wend

Går ud fra at rchild er en reference til topicID.
Avatar billede fennec Nybegynder
12. april 2007 - 08:31 #2
Der skal stå "tilhøre" ikke "tilføre". Datoer skal tilhøre datetime datatypen.
Avatar billede steen_hansen Forsker
12. april 2007 - 18:27 #3
Det ser godt ud, fennec. Jeg vi lige prøve det af.

Nu rettede jeg RS("created") til datetime, og så stod der 00/00/0000 00:00:00 på alle brugerne. De data er mistet, er de ikke? Der er ikke sket den store katastrofe, jeg skal så bare lige lave en update og manuelt sætte nogle datoer og klokkeslet ind :)
Avatar billede steen_hansen Forsker
12. april 2007 - 20:53 #4
Smid et svar, det virker :)
Avatar billede fennec Nybegynder
13. april 2007 - 08:17 #5
Jo, de er desværre mistet :(

Du skulle have lavet en ny kolonne ("createdNY"), også opdatere den med data fra "created". Derefter kunne du slette "created" og omdøbe "createdNY" kolonnen til "created". Så ved du hvordan man gør næstegang.

.o) <-- One Eyed Jack
Avatar billede steen_hansen Forsker
13. april 2007 - 18:32 #6
fennec, jeg vil gerne have, at man i oversigten kan se, når der er et nyt indlæg. Når man kigger i oversigten, skal alle de tråde med nye indlæg i, være med fed. Dvs. du er f.eks. inde og enten opretter et helt nyt indlæg, og samtidig sættes RS("unredad") = 1 (TINYINT(1)). Når man så har været inde på siden, skal RS("unredad") være = 0. Hvis jeg så svarer på dit oplæg, skal unread sættes til 1, så du kan se, at der er en besvarelse på dit indlæg osv.osv. Det skal selvfølgelig gælde for alle.

Jeg har selv lavet det engang for en 4-5 år siden, men man kan godt sige, at jeg lige nu har mistet overblikket :) Har du mod på at hjælpe mod ekstra point?
Avatar billede steen_hansen Forsker
13. april 2007 - 19:46 #7
Jeg fandt ud af det. Tak for hjælpen, fennec :)
Avatar billede steen_hansen Forsker
13. april 2007 - 20:21 #8
Nej, det driller :( Har du mod på det?

Når man kigger i oversigten:

- Et debatoplæg kan være ulæst. I det tilfælde skal overskriften være med fed skrift
- Et debatoplæg kan være læst. I det tilfælde skal overskriften være plain

- Når der er nye indlæg i oplægget, skal overskriften igen være fed
- Når man har læst indlægget, skal overskriften igen være plain

Der følger selvfølgelig point med også :)
Avatar billede steen_hansen Forsker
13. april 2007 - 20:45 #9
Jeg har en forfatter (author) til hvert oplæg. Til hvert oplæg skal der være en modtager (recipient), og det skal jo være alle medlemmerne.

Ud for hver recipient skal RS("unread") enten være 1 (ulæst) eller 2 (læst)

Det var oplægget. Til hvert indlæg (besvarelse) skal der ligeledes være en author/recipient/unread. Det må være noget i den stil, der skal laves?
Avatar billede steen_hansen Forsker
13. april 2007 - 20:46 #10
Ud for hver recipient skal RS("unread") enten være 1 (ulæst) eller 2 (læst)

skulle være

Ud for hver recipient skal RS("unread") enten være 1 (ulæst) eller 0 (læst)
Avatar billede fennec Nybegynder
16. april 2007 - 08:15 #11
Nu har det været weekend, så jeg vil høre om du stadig mangler hjælp til disse ting...
Avatar billede steen_hansen Forsker
16. april 2007 - 16:28 #12
Ja tak, meget gerne :)
Avatar billede fennec Nybegynder
17. april 2007 - 08:22 #13
Bare lige så jeg er sikker...

Du har x antal hoved poster. Hvis person A ikke har læst en af dem, skal den fed. Person B kan have andre som er fede.

Dernæst har du x antal besvarelser til hoved posterne. Hvis der er besvarelser til en hoved post, som person A ikke har set, skal den blive fed.

Skal der angives hvilke besvarelser, der ikke er set? For det kræver en ekstra tabel.
Avatar billede steen_hansen Forsker
17. april 2007 - 20:35 #14
Jeg har en liste med kategorier, og under hver af dem en liste med besvarelser. Hvis jeg har læst alle besvarelser, og der er kommet en ny efter jeg har logget af, skal emnet emnet i morgen på den tråd være fed. Håber du forstår? :)

Ja, jeg regnede også med, at det kræver en ny tabel.

PS: Hvis jeg opretter en ny tråd, skal emnet på den være fed for alle. Hvis der er en besvarelse på den tråd, skal emnet i oversigten være fed for alle, lige indtil de har læst den. For hvert oprettet tråd, skal emnet være fed. Hvis Person A ikke har læst den, skal emnet være med fed. Når Person A har læst den, skal emnet være med alm. tekst, men ikke for Person B, hvis han ikke har læst den. Er det for kryptisk? :)
Avatar billede fennec Nybegynder
18. april 2007 - 08:38 #15
Jeg er med, men har et sidste ?.

Er siden opbygget på samme måde ala Experten, eller på en anden måde? Jeg spørger fordi det afgøre hvornår en subpost er læst. Hvis det er som E, vil den blive registreret som læst, så snart man kommer ind på hovedposten. Kunne også være opbygget, så man kun ser overskriften af subposterne, og skal klikke på dem for at lukke dem op.
Avatar billede steen_hansen Forsker
18. april 2007 - 17:00 #16
Man logger sig ind. Herefter vælger man debatoversigten, som indtil nu hiver alle hovedkategorierne ud. Under hver enkelt hovedkategori er samtlige oprettede debattråde hevet ud. Når man trykker på én af dem, får man den oprettede debat og alle de underliggende svar. Så det er faktisk 3 tabeller, som relateres til hinanden:

DATABASE 1 (HOVEDKATEGORI):
Unikt ID

DATABASE 2 (OPRETTEDE EMNER):
Unikt ID
child (er lig med unikt ID i database 1)

DATABASE 3 (BESVARELSER PÅ OPRETTEDE EMNER):
Unikt ID
rchild (er lig med unikt ID i database 2)


Min tanke var at lave en ekstra tabel, som automatisk laver en Conn.Execute sæt-0-i-RS("unread"), når man går ind i den enkelte tråd. Dvs. man burde have læst den, når man har været inde på siden. RS("unread") vil nu være 0 (nul).

Hvis jeg logger på i morgen, og der ikke er nogen, der har postet et nyt indlæg, vil værdien i RS("unread") stadig være 0, og class vil stadig være almindeligskrift. I det øjeblik en eller anden poster et nyt indlæg, skal RS("unread") tildeles værdien 1. Det var min tanke. Men jeg har haft en del problemer med at overskue hvordan det bedst laves individuelt på alle medlemmer. Jeg kan sagtens lave det i et slags mailsystem, hvor man skriver en besked til ét medlem. Men hvordan dulen det skal kringles, når ALLE medlemmer (der er ikke så mange, men sagen uvedkommende :)) skal kunne se, hvis der er et nyt debatoplæg/debatindlæg .... den er lidt kringlet, synes jeg :)
Avatar billede steen_hansen Forsker
18. april 2007 - 17:04 #17
HOVEDKATEGORI I
    Oprettet debatoplæg nr. 1
        Besvarelse nr. 1 på oprettet debatoplæg nr. 1
        Besvarelse nr. 2 på oprettet debatoplæg nr. 1
        Besvarelse nr. 3 på oprettet debatoplæg nr. 1
        Besvarelse nr. 4 på oprettet debatoplæg nr. 1
    Oprettet debatoplæg nr. 2
        Besvarelse nr. 1 på oprettet debatoplæg nr. 2
        Besvarelse nr. 2 på oprettet debatoplæg nr. 2
        Besvarelse nr. 3 på oprettet debatoplæg nr. 2
    Oprettet debatoplæg nr. 3
        Besvarelse nr. 1 på oprettet debatoplæg nr. 3
        Besvarelse nr. 2 på oprettet debatoplæg nr. 3
        Besvarelse nr. 3 på oprettet debatoplæg nr. 3
        Besvarelse nr. 4 på oprettet debatoplæg nr. 3
        Besvarelse nr. 5 på oprettet debatoplæg nr. 3
        Besvarelse nr. 6 på oprettet debatoplæg nr. 3

HOVEDKATEGORI II
    Oprettet debatoplæg nr. 1
        Besvarelse nr. 1 på oprettet debatoplæg nr. 1
        Besvarelse nr. 2 på oprettet debatoplæg nr. 1
        Besvarelse nr. 3 på oprettet debatoplæg nr. 1
        Besvarelse nr. 4 på oprettet debatoplæg nr. 1
    Oprettet debatoplæg nr. 2
        Besvarelse nr. 1 på oprettet debatoplæg nr. 2
        Besvarelse nr. 2 på oprettet debatoplæg nr. 2
        Besvarelse nr. 3 på oprettet debatoplæg nr. 2
    Oprettet debatoplæg nr. 3
        Besvarelse nr. 1 på oprettet debatoplæg nr. 3
        Besvarelse nr. 2 på oprettet debatoplæg nr. 3
        Besvarelse nr. 3 på oprettet debatoplæg nr. 3
        Besvarelse nr. 4 på oprettet debatoplæg nr. 3
        Besvarelse nr. 5 på oprettet debatoplæg nr. 3
        Besvarelse nr. 6 på oprettet debatoplæg nr. 3


Etc. Håber det giver et overblik :)
Avatar billede steen_hansen Forsker
18. april 2007 - 17:15 #18
Lige en kommentar til 18/04-2007 17:04:12:

Det er kun de oprettede debatindlæg man kan se, og de er samtidig links, så man kan se hvad det drejer sig om. I oversigten kan man kun se:

HOVEDKATEGORI I
    Oprettet debatoplæg nr. 1
    Oprettet debatoplæg nr. 2
    Oprettet debatoplæg nr. 3
    Oprettet debatoplæg nr. 4
    Oprettet debatoplæg nr. 5

HOVEDKATEGORI II
    Oprettet debatoplæg nr. 1
    Oprettet debatoplæg nr. 2
    Oprettet debatoplæg nr. 3

HOVEDKATEGORI III
    Oprettet debatoplæg nr. 1
    Oprettet debatoplæg nr. 2
    Oprettet debatoplæg nr. 3
    Oprettet debatoplæg nr. 4
    Oprettet debatoplæg nr. 5
    Oprettet debatoplæg nr. 6
    Oprettet debatoplæg nr. 7

HOVEDKATEGORI IV
    Oprettet debatoplæg nr. 1
    Oprettet debatoplæg nr. 2


Det er kun en midlertidig løsning, men hvis der er oprettet et nyt debatoplæg, skal skriften være fed. Hvis der er kommet en besvarelse til et debatoplæg, skal overskriften også være fed, så man kan se, at der enten er et nyt debatoplæg, eller en besvarelse i en eksisterende tråd.

Det skal laves om hen ad vejen, men det er ligegyldigt lige nu. Lige nu er det funktionen, der skal på plads :)
Avatar billede fennec Nybegynder
19. april 2007 - 08:44 #19
Så det er en opbygning som E. Det gjorde det lidt nemmere :o)

Du skal have oprette en ny tabel:
[UserHaveSeenIt]
HaveSeenID, autonummer
userID (ref til bruger tabel)
emneID (ref til emne tabel)

Prinsippet bag dette er at indsætte en række i UserHaveSeenIt når brugeren gå ind på et emne. Når der oprettes en ny besvarelse i et emne, slettes alle tilhørende rækker i UserHaveSeenIt.

Hvis der er en række har brugeren læst emnet og besvarelserne
Er der ikke en række har brugeren ikke læst emnet og besvarelserne

Når du skal vise emneteksten, slår du bare op i UserHaveSeenIt og ser om der er et hit eller ej.
Avatar billede steen_hansen Forsker
19. april 2007 - 10:56 #20
Jeg kan godt følge dig et godt stykke hen ad vejen, men det, der gør mig lidt usikker på hvad du helt præcist mener er, hvad der skal indsættes. Du nævner "en række". Mener du med det parametrene på debattråden, som f.eks. topcatID=XXX&subcatID=YYY? Hvis der er 41 nyoprettede tråde og besvarelser siden mit sidste login, butde jeg gerne kunne se 41 emner, hvor teksten er fed.
Avatar billede steen_hansen Forsker
19. april 2007 - 10:57 #21
Man kan vel bare sætte værdien 1 ind i RS("unread"), hvis man ikke har læst, og værdien 0, hvis man har læst?

Jeg vil lige prøve mig lidt frem. Jeg kan se du er på en gang i døgnet, så jeg glæder mig til i morgen :)
Avatar billede fennec Nybegynder
19. april 2007 - 11:17 #22
Du skal bare oprette den ene tabel, som jeg har vist dig. Alt det med RS("unread") skal ikke bruges til noget.

Forklaring på hvordan det fungere:

Du er gået ind på siden, og ind under en af hovedkategorierne. Dem viser du sikkert via et loop. Der tilføjer du et tjeck:

set rs = conn.execute("select * from emne where hovedID="& hovedID)
while not rs.eof
  set rs2 = conn.execute("select * from UserHaveSeenIt where userID="& userID &" and emneId="& rs("id"))
  if rs2.eof then
    'Har ikke læst posten
  else
    'Har læst posten
  end if
  rs.MoveNext
wend

Når man så går ind på et emne, er det aller første du gør på siden at indsætte en række UserHaveSeenIt hvis der ikke er en i forvejen:
set rs = conn.execute("select * from UserHaveSeenIt where userID="& userID &" and emneId="& rs("id"))
if rs.eof then
  conn.execute("insert into UserHaveSeenIt(userID,emneID) values("& userID &","& emneID &")")
end if

ps. Jeg er på i arbejdstid, hvilket vil sige 8-16:30
Avatar billede steen_hansen Forsker
19. april 2007 - 11:34 #23
Ok. Jeg skal dog lige lave en Request.QueryString for at kunne indsætte emneID?
Avatar billede fennec Nybegynder
19. april 2007 - 11:42 #24
Jep, jeg ved jo ikke hvordan du angiver brugerID'et og emneID'et, så jeg brugte et par variabler. brugerId'et har du måske i en session...
Avatar billede steen_hansen Forsker
19. april 2007 - 11:44 #25
Nemlig

Jeg prøver, det ser fornuftigt ud :)
Avatar billede steen_hansen Forsker
19. april 2007 - 12:06 #26
Det driller en anelse, jeg kigger videre på det i aften. Håber du får tid i morgen, så det kan komme på plads. Snakkes :)
Avatar billede steen_hansen Forsker
20. april 2007 - 11:43 #27
Hej fennec

Jeg får denne fejl:

Microsoft VBScript runtime error '800a000d'

Type mismatch


i denne linie:

Set RSz = Conn.Execute("SELECT * FROM itgsecrethaveseen WHERE zuser =" & sessionusername & " AND ztopicID =" & RSz("ztitleID"))

Koden:

<%
Dim ztopicID, sessionusername, RSZ
ztopicID = Request.QueryString("topcatID")
sessionusername = Session("username")

Set RSz = Conn.Execute("SELECT * FROM itgsecrethaveseen WHERE zuser =" & sessionusername & " AND ztopicID =" & RSz("ztitleID"))
%>

Hvorfor?
Avatar billede fennec Nybegynder
20. april 2007 - 12:00 #28
Sikkert fordi RSz("ztitleID") ikke eksistere... Har du selected den tidligere??
Avatar billede steen_hansen Forsker
20. april 2007 - 12:09 #29
Nej, det har jeg ikke.

Jeg er startet med at sætte det ind på debat-tråds-siden. Der bliver jo tjekket for EOF:

If RSz.EOF Then
.........
End If

Så hvis der ikke er noget i RSz skal den jo indsætte hhv. ztopicID og sessionusername i zuser (varchar 16) og ztitleID (tinyint 3)?
Avatar billede steen_hansen Forsker
20. april 2007 - 12:14 #30
Den sidste linie er noget sludder. Jeg håber du kan gennemskue hvad der går galt :)
Avatar billede fennec Nybegynder
20. april 2007 - 12:29 #31
If NOT RSz.EOF Then
Avatar billede steen_hansen Forsker
20. april 2007 - 12:32 #32
Fuldstændigt det samme :o[
Avatar billede steen_hansen Forsker
20. april 2007 - 12:33 #33
Microsoft VBScript runtime error '800a000d'

Type mismatch

debate_test.asp, line 19


Linie 19: Set RSz = Conn.Execute("SELECT * FROM itgsecrethaveseen WHERE zuser =" & sessionusername & " AND ztopicID =" & RSz("ztitleID"))
Avatar billede fennec Nybegynder
20. april 2007 - 12:36 #34
Giv mig lige alt din kode fra linje 0 til 20
Avatar billede steen_hansen Forsker
20. april 2007 - 12:37 #35
Det, der bliver sagt med den linie, er:

Hvis recordsettet ikke er tomt, vælg da alt, hvor RS("zuser") = Session("username") OG hvor Request.QueryString("topcatID") = RSz("ztitleID")

Det ser ud for mig som det skal: Hvis RS ikke har nået EndOfFile, så .....
Avatar billede steen_hansen Forsker
20. april 2007 - 12:38 #36
<!-- #include virtual="/includes/_protect.asp" -->
<!-- #include virtual="/includes/_data.asp" -->
<!-- #include virtual="/includes/_functions.asp" -->

<%

    Dim Mainarea, Conn, ztopicID, sessionusername, RSz, topcatID, subcatID, RSsub, ssubID, RSs

    Mainarea = 4

%>
<!-- #include virtual="/includes/dbconnopen.asp" -->
<%

    ztopicID = Request.QueryString("topcatID")

    sessionusername = Session("username")

    Set RSz = Conn.Execute("SELECT * FROM itgsecrethaveseen WHERE zuser =" & sessionusername & " AND ztopicID =" & RSz("ztitleID"))
    If Not RSz.EOF Then
Avatar billede fennec Nybegynder
20. april 2007 - 12:46 #37
Det giver jo ingen mening den kode. Prøv lige at læse den en ekstra gang :o)

Set RSz = Conn.Execute("SELECT ...ztopicID =" & RSz("ztitleID"))

Du er ved at åben RSz recordset, men samtidig vil du hente "ztitleID" værdien fra det recordset du er ved at åbne...

Jeg er rigmelig sikker på at RSz("ztitleID") skal være en request.querystring/variabel i stedet, eller du skal have åbnet et RSz recordset tidligere i koden.
Avatar billede steen_hansen Forsker
20. april 2007 - 12:49 #38
Hvis det skal være en Request.QueryString, er der så ikke to?

Dim ztopicID
ztopicID = Request.QueryString("topcatID")

Jeg prøvede at omsætte det, du skrev i 19/04-2007 11:17:41, men har jeg misforstået hvad det var du ville?
Avatar billede steen_hansen Forsker
20. april 2007 - 12:51 #39
Ups, det skal byttes om, tror jeg. Så

Set RSz = Conn.Execute("SELECT * FROM itgsecrethaveseen WHERE zuser =" & sessionusername & " AND ztopicID =" & RSz("ztitleID"))

bliver til noget i stil med

Set RSz = Conn.Execute("SELECT * FROM itgsecrethaveseen WHERE zuser =" & sessionusername & " AND ztitleID =" & ztopicID)

Eller hvad? :)
Avatar billede fennec Nybegynder
20. april 2007 - 12:51 #40
Mit bud vil være at du skal bruge ztopicID i stedet for RSz("ztitleID")

Forkert:
Set RSz = Conn.Execute("SELECT * FROM itgsecrethaveseen WHERE zuser =" & sessionusername & " AND ztopicID =" & RSz("ztitleID"))

Rigtig:
Set RSz = Conn.Execute("SELECT * FROM itgsecrethaveseen WHERE zuser =" & sessionusername & " AND ztopicID =" & ztopicID )
Avatar billede steen_hansen Forsker
20. april 2007 - 12:54 #41
Så forsøger jeg at sætte det ind i en kolonne "Steen", der ikke eksisterer:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-4.0.18-nt]Unknown column 'Steen' in 'where clause'

debate_test.asp, line 19


Linie 19: Set RSz = Conn.Execute("SELECT * FROM itgsecrethaveseen WHERE zuser =" & sessionusername & " AND ztitleID =" & ztopicID)
Avatar billede steen_hansen Forsker
20. april 2007 - 12:54 #42
Ikke sætte ind, men hente. Sorry :)
Avatar billede fennec Nybegynder
20. april 2007 - 12:58 #43
Ok. Nu glemmer vi lige ALT kode du har skrevet. Hvad er det du skal trække ud på den side??
Avatar billede steen_hansen Forsker
20. april 2007 - 13:01 #44
Det er dette, fra 19/04-2007 11:17:41:

<snip>
Når man så går ind på et emne, er det aller første du gør på siden at indsætte en række UserHaveSeenIt hvis der ikke er en i forvejen:
set rs = conn.execute("select * from UserHaveSeenIt where userID="& userID &" and emneId="& rs("id"))
if rs.eof then
  conn.execute("insert into UserHaveSeenIt(userID,emneID) values("& userID &","& emneID &")")
end if
</snip>
Avatar billede fennec Nybegynder
20. april 2007 - 13:11 #45
Det er også forkert... rs("id") skulle have været en variabel.

Ud fra hvad jeg kan forstå fra din kode så indeholder Request.QueryString("topcatID") værdien "Steen". Skulle det ikke have været et tal??
Avatar billede steen_hansen Forsker
20. april 2007 - 13:15 #46
Nej, den indeholder topcatID

topcatID=7&subcatID=12

.. f.eks.
Avatar billede steen_hansen Forsker
20. april 2007 - 13:16 #47
Jeg kunne heller ikke se lyset, men gik ud fra, at du havde en idé med det. Det plejer du altid :)
Avatar billede steen_hansen Forsker
20. april 2007 - 13:19 #48
Det, det hele drejer sig om, er at få lagt topcatID og Session("username") ned i tabellen, når man går ind debat-tråds-siden?
Avatar billede fennec Nybegynder
20. april 2007 - 13:31 #49
Så det er sessionusername som er "Steen". Men er zuser ikke også et tal?
Avatar billede steen_hansen Forsker
20. april 2007 - 13:38 #50
Nej, for Session("username") er brugernavnet, og RS("zuser") er af typen VARCHAR, 16 karakterer.
Avatar billede steen_hansen Forsker
20. april 2007 - 13:42 #51
<%
Dim sessionusername
sessionusername = Session("username")
%>

I mit tilfælde er sessionusername = "Steen"
Avatar billede fennec Nybegynder
23. april 2007 - 08:27 #52
Det er aldrig godt at lave fremmednøgler på tekster. Du har sikkert en bruger tabel, og i den burde du gemme et ID, et brugernavn og et password. I stedet for at lave fremmednøgler på navnet så brug ID'et i stedet.

Men for nu at bruge din kode, hvor det er tekst:

Set RSz = Conn.Execute("SELECT * FROM itgsecrethaveseen WHERE zuser ='" & sessionusername & "' AND ztopicID =" & ztopicID )
Avatar billede steen_hansen Forsker
23. april 2007 - 16:13 #53
Ok, jeg har en tabel med userID, username og pass.

Venter spændt på det efterfølgende :)
Avatar billede fennec Nybegynder
23. april 2007 - 16:18 #54
Så skal du have ændret alle dine referencer i databasen som peger på username til at pege på ID'et i stedet. Dvs at datatypen også skal ændres fra tekst til tal.

Brugernavnet må altså kun stå i din user tabel, alle nadre tabeller skal der stå et tal som henviser til ID'et på den bruger.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester