20. juli 2004 - 10:07Der er
6 kommentarer og 4 løsninger
Chat-spørgsmål
Hej Eksperter...
Jeg har nu næsten lavet en mindre chat, men er kommet ud for et problem... Chatten skal BÅDE vise beskeder fra brugere, men osse en besked, når de logger på... (Jeg sætter den til at gemme det i databasen, når de logger ind!)
Så jeg har altså en database med følgende felter: id | username | message | time | for
('For' viser, hvem beskeden er skrevet til... Hvis den er til 'Alle', kan alle se den, og 'logpå'-beskeder er til 'chat'!)
Men nu skal jeg have den til at vise BÅDE 'logpå' og beskeder til 'alle' og til brugeren 'Toby'...
Hvordan gøres det, når jeg har denne kode:
<% Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../db/database.mdb")
strSQL = "SELECT top 3 * FROM chat WHERE ORDER BY time DESC" Set rs = myConn.Execute(strSQL)
Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then Do While Not rs.EOF Response.Write "<font color='#008000' size='2'>" & rs("time") &" - " & rs("username") &" til " & rs("for") &": </font><font color='#000000' size='2'>" & rs("message") & "</font><br>" rs.MoveNext Loop Else Response.Write "<font color='#000000' size='2'>Der er ingen beskeder i chatten!</font>" End If %>
Ja, men det er mere, hvordan man får den til at vise det rigtigt, i den der 'Do While'-fidus... altså... Hvis det er en 'logpå'-ting, skal den ikke skrives ligesom en 'alle'-besked... Hvordan gøres det?
Do While NOT rs.EOF If rs("for") = "logpå" or rs("for") = "alle" Then 'Her skriver du hvis til alle eller logpå Else 'Så er det en privat besked End If rs.MoveNext Loop
Hov, jeg læste forkert. Do While NOT rs.EOF If lCase(rs("for")) = "logpå" Then 'Hvis den er fra systemet ElseIf lCase(rs("for")) = "alle" Then 'Så sendes den til alle Else 'Så er det en privat besked End If rs.MoveNext Loop
<% Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../db/database.mdb")
strSQL = "SELECT top 3 * FROM chat WHERE ORDER BY time DESC" Set rs = myConn.Execute(strSQL)
Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then Do While NOT rs.EOF If lCase(rs("for")) = "chat" Then Response.Write "<font color='#c0c0c0' size='2'>" & rs("username") &" " & rs("message") &" " & rs("time") &"</font><br>" Else If lCase(rs("for")) = "alle" Then Response.Write "Hej" Else Response.Write "Hejhej" End If rs.MoveNext Loop Else Response.Write "<font color='#000000' size='2'>Der er ingen beskeder i chatten!</font>" End If %>
<% Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../db/database.mdb")
strSQL = "SELECT top 3 * FROM chat WHERE ORDER BY time DESC" Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then Do While NOT rs.EOF If lCase(rs("for")) = "chat" Then Response.Write "<font color='#c0c0c0' size='2'>" & rs("username") &" " & rs("message") &" " & rs("time") &"</font><br>" ElseIf lCase(rs("for")) = "alle" Then Response.Write "Hej" Else Response.Write "Hejhej" End If rs.MoveNext Loop Else Response.Write "<font color='#000000' size='2'>Der er ingen beskeder i chatten!</font>" End If rs.Close conn.Close Set rs = Nothing Set conn = Nothing %>
Der var mellemrum mellem else og if. Det skal der ikke være.
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.