Får ett väldigt irriterande "fel" när jag ska lista ut ålder och användarnamn ur en databas, saken är den att den skriver ut namn sånt riktigt men åldern den blir samma på varje post alltså samma som den första personen i listan, klistrar in lite kod nedan: Problemet är här att du bara har ett värde för age. age = DateDiff("yyyy",FDate,Now()) fel i poster
<code>
set recset = createobject("ADODB.Recordset")
set rs = createobject("ADODB.Recordset")
strsql = "select * from tblguestbook where fldtouser = '"& request("user") &"' order by flddate DESC"
recset.open strsql, conn, 3, 3
sql = "select * from tblinfo where fldusername ='"&recset("fldfromuser")&"'"
rs.open sql, conn, 3, 3
Dim FDate
FDate = rs("fldbirthdate")
Dim age
age = DateDiff("yyyy",FDate,Now())
IF month(FDate) >= month(now()) AND day(FDate) > day(now()) then
if month(fdate) > month(now) then
age = age - 1
elseif month(Fdate) = month(now) then
elseif day(fdate) > day(now) then
age = age - 1
End if
end if
%>
och för att sen lista posten så skriver jag
<%=recset("fldfromuser")%> <%=age%>
</code>
någon som har en bra lösning på detta så är jag tacksam för svar =)Sv: fel i poster
Jag antar att du loopar upp <%=recset("fldfromuser")%> <%=age%>...
Här måste du också loopa upp beräkningen för age. På det viset får du åldern på varje användare.
Typ:
<code>
set recset = createobject("ADODB.Recordset")
set rs = createobject("ADODB.Recordset")
strsql = "select * from tblguestbook where fldtouser = '"& request("user") &"' order by flddate DESC"
recset.open strsql, conn, 3, 3
sql = "select * from tblinfo where fldusername ='"&recset("fldfromuser")&"'"
rs.open sql, conn, 3, 3
Dim FDate
Dim age
'Börja loopen
FDate = rs("fldbirthdate")
age = DateDiff("yyyy",FDate,Now())
IF month(FDate) >= month(now()) AND day(FDate) > day(now()) then
if month(fdate) > month(now) then
age = age - 1
elseif month(Fdate) = month(now) then
elseif day(fdate) > day(now) then
age = age - 1
End if
end if
response.write rs("fldfromuser") & " " & age & "<BR>"
'Nästa i listan
</code>
%>Sv: fel i poster
Om FDate är ett datum som ligger tidigare i tiden än now (vilket jag förmodar att det är) kommer DateDiff att returnera ett negativt tal.
Det skulle alltså betyda att jag här blir ett år äldre (eller yngre eftersom vi kör med negativa tal...) än vad jag är om jag inte fyllt år ännu detta året.
if month(fdate) > month(now) then
age = age - 1
end if