det är ovanstående "user = " som jag vill sätta till användaren vars sida man besöker
Vart finns det användarnamnet?
------------------
essentitia preter non sans multiplicandum
36 svar · 278 visningar · startad av laidback · sida 2 av 2
skulle vilja lista en användares alla inlägg månadsvis, nuvarande månaden ska alla inläggs titel o datum skrivas ut, men tidigare månader ska finnas textlänkar "september" "augusti" osv och när dessa klickas ska alla meddelanden skrivna den månaden listas med titel och datum. avancerat? \förvirrad\ \------------------ I just lay back and let the big beat lead me
Läs frågan i sin helhet →det är ovanstående "user = " som jag vill sätta till användaren vars sida man besöker
Vart finns det användarnamnet?
------------------
essentitia preter non sans multiplicandum
i tabellen k_messages i fältet "name", och det är på utvald användares sida man befinner sig och vill se inläggen.
en variabel "current" är deklarerad tidigare, som innehåller just detta namn. hur anropar jag detta?
------------------
I just lay back and let the big beat lead me
Då borde det bara vara att byta user mot current i de båda sql-satserna
sql = "select * from k_messages " & _
" where month(date) = " & m &_
" and year(date) = " & y & _
" and name = '" & current & "'"
response.write sql
och
'ta alla månader som inte ingår
sql = "select distinct year(Date),month(Date) from k_messages " & _
" where month(date) <> " & m & _
" and year(date) <> " & y & _
" and name = '" & current & "'"
response.write sql
------------------
essentitia preter non sans multiplicandum
set rs = connect.execute(sql)
får " Data type mismatch in criteria expression."
tror jag måste sova lite.. :/
------------------
I just lay back and let the big beat lead me
Ok, men jag vill fortfarande se resultatet av
response.write sql
------------------
essentitia preter non sans multiplicandum
resultatet bli endast
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
om jag skriver ut response.write sql som, du gjort ovan.
------------------
I just lay back and let the big beat lead me
I den kod du visade så hade du
response.write sql
sql = "select * from k_messages " & _
" where month(date) = " & m &_
" and year(date) = " & y & _
" and name = '" & current & "'"
och då är variablen sql odefinierad.
Om du lägger response.write efter tilldelningen så borde du få ut något.
sql = "select * from k_messages " & _
" where month(date) = " & m &_
" and year(date) = " & y & _
" and name = '" & current & "'"
response.write sql
------------------
essentitia preter non sans multiplicandum
hm. samma fel visas om jag lägger den efter.
nu ser koden ut så här
<%
m = request.querystring("month")
if m = "" then m = month(date)
y = request.querystring("year")
if y = "" then y = year(date)
user = session("user")
'lista alla inlägg för aktuell månad
sql = "select * from k_messages " & _
" where month(date) = " & m &_
" and year(date) = " & y & _
" and name = '" & current & "'"
response.write sql
set rs = connect.execute(sql)
while not rs.eof
'visa data
rs.movenext
wend
rs.close
'ta alla månader som inte ingår
sql = "select distinct year(Date),month(Date) from k_messages " & _
" where month(date) <> " & m & _
" and year(date) <> " & y & _
" and name = '" & current & "'"
response.write sql
set rs = connect.execute(sql)
while not rs.eof
response.write "<a href=show.asp?month='" & rs(0) & "'&year='" & rs(1) &"'>" & _
monthname(rs(0)) & " " & rs(1) & "</a>"
rs.movenext
wend
rs.close
set rs = nothing
%>
------------------
I just lay back and let the big beat lead me
Det kan vara något problem med att date är ett reserverat ord i Access
<%
m = request.querystring("month")
if m = "" then m = month(date)
y = request.querystring("year")
if y = "" then y = year(date)
user = session("user")
'lista alla inlägg för aktuell månad
sql = "select * from k_messages " & _
" where month([date]) = " & m &_
" and year([date]) = " & y & _
" and name = '" & current & "'"
response.write sql
set rs = connect.execute(sql)
while not rs.eof
'visa data
rs.movenext
wend
rs.close
'ta alla månader som inte ingår
sql = "select distinct year(Date),month(Date) from k_messages " & _
" where month([date]) <> " & m & _
" and year([date]) <> " & y & _
" and name = '" & current & "'"
response.write sql
(Jag menade inte att det skulle avhjälpa felet att flytta på response.write, bara att sql skulle få ett värde innan utskriften.)
------------------
essentitia preter non sans multiplicandum
men.. *lite sömn senare*
ursprungligen såg det ut så här :
<% View = "SELECT * FROM k_messages ORDER BY ID DESC"
RecSet.Open View, Connect, adOpenStatic, adLockOptimistic
Do Until RecSet.EOF %>
<% If RecSet("name")=current<% =RecSet("date")%>
[<A href="view_message.asp?messID=<% =RecSet("ID") %>"><% =RecSet("title")%></A>]
<% End If %>
<%
RecSet.MoveNext
Loop
RecSet.Close %>
och detta visade då gällande användares alla inlägg.
går det inte att skriva
View = "SELECT * FROM k_messages ORDER BY ID DESC"
where månaden är den som är nu?
------------------
I just lay back and let the big beat lead me
Jo, det var det som var tanken
m = request.querystring("month")
if m = "" then m = month(date)
y = request.querystring("year")
if y = "" then y = year(date)
user = session("user")
'lista alla inlägg för aktuell månad
sql = "select * from k_messages " & _
" where month([date]) = " & m &_
" and year([date]) = " & y & _
" and name = '" & current & "'"
response.write sql
set recset = connect.execute(sql)
while not recset.eof
%>
[<A href="view_message.asp?messID=<% =RecSet("ID") %>"><% =RecSet("title")%></A>]
recset.movenext
wend
rs.close
------------------
essentitia preter non sans multiplicandum
hm. fortfarande fel på sql-satsen enligt felmeddelandena.
"data type mismatch"
borde jag nämna att "date" är ett textfält? :r
------------------
I just lay back and let the big beat lead me
Ja.
Kan du byta till date?
Om inte, i vilket format ligger datumet lagrat.
------------------
essentitia preter non sans multiplicandum
hm. helst inte?
för att få datumet i ett trevligt format skickas följande till date-fältet när man gör ett inlägg:
<input type="hidden" name="date" size="15" value="<%=Right("0" & Day(Now),2)%> <% =LCase(Monthname(Month(Now), True))%> <% =Year(Now)%> - <%=Right("0" & Hour(Now),2)%>:<%=Right("0" & Minute(Now),2)%>">
------------------
I just lay back and let the big beat lead me
Jag tycker i alla fall att du skall byta till date och lagra värdet av now() i databasen och sedan göra din formattering när du visar data.
I och för sig går det att skriva ett uttryck med like som matchar år och månad i textfältet men jag tycker att det är onödigt.
------------------
essentitia preter non sans multiplicandum
så hur skulle det se ut då? kodmässigt och utskriftsresultat.
------------------
I just lay back and let the big beat lead me
Det blir samma formattering som tidigare oavsett om du hämtar från databasen
<% d = cdate(recset("date")) %>
<input type="hidden" name="date" size="15" value="<%=Right("0" & Day(d),2)%> <% =LCase(Monthname(Month(d), True))%> <% =Year(d)%> - <%=Right("0" & Hour(d),2)%>:<%=Right("0" & Minute(d),2)%>">
------------------
essentitia preter non sans multiplicandum