webForumDet fria alternativet

paging enligt månader

ASP

36 svar · 278 visningar · startad av laidback · sida 2 av 2

Frågan, av laidback

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 →
Medlem sedan dec. 200012 464 inlägg
#21

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

Medlem sedan maj 2001797 inlägg
#22

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

Medlem sedan dec. 200012 464 inlägg
#23

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

Medlem sedan maj 2001797 inlägg
#24

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

Medlem sedan dec. 200012 464 inlägg
#25

Ok, men jag vill fortfarande se resultatet av

response.write sql

------------------
essentitia preter non sans multiplicandum

Medlem sedan maj 2001797 inlägg
#26

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

Medlem sedan dec. 200012 464 inlägg
#27

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

Medlem sedan maj 2001797 inlägg
#28

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

Medlem sedan dec. 200012 464 inlägg
#29

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

Medlem sedan maj 2001797 inlägg
#30

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")%>
&nbsp; 

[<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

Medlem sedan dec. 200012 464 inlägg
#31

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

Medlem sedan maj 2001797 inlägg
#32

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

Medlem sedan dec. 200012 464 inlägg
#33

Ja.

Kan du byta till date?

Om inte, i vilket format ligger datumet lagrat.

------------------
essentitia preter non sans multiplicandum

Medlem sedan maj 2001797 inlägg
#34

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)%>&nbsp;<% =LCase(Monthname(Month(Now), True))%>&nbsp;<% =Year(Now)%>&nbsp;-&nbsp;<%=Right("0" & Hour(Now),2)%>:<%=Right("0" & Minute(Now),2)%>">

------------------
I just lay back and let the big beat lead me

Medlem sedan dec. 200012 464 inlägg
#35

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

Medlem sedan maj 2001797 inlägg
#36

så hur skulle det se ut då? kodmässigt och utskriftsresultat.

------------------
I just lay back and let the big beat lead me

Medlem sedan dec. 200012 464 inlägg
#37

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

291 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
160 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)