Kan man ändra denna kod så att limit blir 500 om man inte är VIP och 1000 om man är VIP och hur skriver man om koden då?
Set objRs = Server.Createobject("Adodb.Recordset")
strSQL = "SELECT mailRead, username, mailDate, mailTime, sender, Headline, message, mailID,Reciever, vip "&_
"FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.sender "&_
"WHERE Reciever='"& Session("userID") &"' order by mailID desc "
LarsGMedlem sedan dec. 200012 464 inlägg I så fall måste du först ställa en spearat fråga för att ta reda på om användaren är VIP eller inte.
om jag skriver om den jag redan har och använder som ny
set vipCheck=objConn.Execute("SELECT vip, username, sender mailID, Reciever "&_
"FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.sender "&_
"WHERE Reciever='"& Session("userID") &"' order by mailID desc")
Hur skriver jag sen för att säta en dynamisk limit?
Här kommer sql-en till min paging där limit ska vara dynamisk
strSQL = "SELECT mailRead, username, mailDate, mailTime, sender, Headline, message, mailID,Reciever, vip "&_
"FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.sender "&_
"WHERE Reciever='"& Session("userID") &"' order by mailID desc "
MeleaMedlem sedan juli 20033 147 inlägg Skapa en variabel som heter limit, om man är vip (if-sats) så skapas variabeln limit = 1000, annars (else) blir limit = 500.
Sen lägger du bara in den i SQL-satsen.
LarsGMedlem sedan dec. 200012 464 inlägg set vipCheck=objConn.Execute("SELECT vip FROM tblUsers "&_
"WHERE Reciever='"& Session("userID") &"'")
if vipCheck.eof then
response.write "finns ej"
else
strSQL = "SELECT mailRead, username, mailDate, mailTime, sender, Headline, message, mailID,Reciever, vip "&_
"FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.sender "&_
"WHERE Reciever='"& Session("userID") &"' order by mailID desc "
if vipCheck("VIP") = "Yes" then ' eller vad du nu har
sqlStr = sqlStr + " limit 0,1000"
else
sqlStr = sqlStr + " limit 0,500"
end if
' kod för att visa post
end if
så efter min första sql har jag
varVIPlimit=" if vipCheck("vip") = 1 then
response.write "1000"
else
response.write "500"
end if"
eller hur skriver man en if-sats i en variabel
och i andra satsen skriver jag bara limit "&varVIPlimit då
@ndersMedlem sedan juni 200032 969 inlägg Inte alls typ så...
Det här är grundläggande VBScript...
if Cint(vipCheck("vip")) = 1 then
varVIPlimit = 1000
else
varVIPlimit = 500
end if
MeleaMedlem sedan juli 20033 147 inlägg
@nders skrev:
Inte alls typ så...
Det här är grundläggande VBScript...
if vipCheck("vip") = 1 then
varVIPlimit = 1000
else
varVIPlimit = 500
end if
Hänvisade till LarsG:s inlägg.
Med denna kod får jag:
Microsoft VBScript compilation error '800a0400'
Expected statement
/mail/paging.asp, line 85
end if
<%
Set objRs = Server.Createobject("Adodb.Recordset")
set vipCheck=objConn.Execute("SELECT vip, username, sender mailID, Reciever "&_
"FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.sender "&_
"WHERE Reciever='"& Session("userID") &"' order by mailID desc")
if vipCheck.eof then
response.write "finns ej"
else
strSQL = "SELECT mailRead, username, mailDate, mailTime, sender, Headline, message, mailID,Reciever, vip "&_
"FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.sender "&_
"WHERE Reciever='"& Session("userID") &"' order by mailID desc "
if vipCheck("VIP") = "1" then ' eller vad du nu har
sqlStr = sqlStr + " limit 0,1000"
else
sqlStr = sqlStr + " limit 0,500"
end if
strConString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=193.13.74.203;PORT=3306;DATABASE=xxxxxxxx; USER=xxxxxxxxx;PASSWORD=xxxxxxxx;OPTION=3;"
'================================================================================================
function getPreviousLink( intp )
if intp > 1 then
getPreviousLink = " <a class=""menu"" href='?p=" & intp - 1 & "'> « Föregående</a> "
else
If intp < 2 then
response.write " "
end if
end if
end function
'================================================================================================
'================================================================================================
function getNextLink( intPageId, intPageCount )
if cint( intpageId ) <> cint( intPageCount ) then
getNextLink = " <a class=""menu"" href='?p=" & intp + 1 & "'> Nästa »</a> "
else
getNextLink = " Nästa »"
end if
end function
'================================================================================================
'================================================================================================
function getLastLink( intPageCount )
getLastLink = " <a class=""menu"" href='?p=" & intPageCount & "'>Sista sidan</a> "
end function
'================================================================================================
'================================================================================================
function getPageInfo( intp, intPageCount )
getPageInfo = "<a class=""menu""> Sida: " & intp & " </a>"
end function
'================================================================================================
intp = request.querystring( "p" )
if intp = "" then intp = 1
with objRs
.cursorlocation = 3
.open strSQL, strConString
.pagesize = 20
end with
If objRs.EOF Then
Response.Write "Din inbox är tom<p>"
Else
intPages = cint(objRs.pagecount)
intCurrentPost = 0
objRs.absolutepage = intp
Do while not objRs.eof and intCurrentPost < objRs.pagesize
nummer = nummer + 1
If nummer Mod 2 = 0 Then
color = "#FFFFFF"
Else
color = "#EEEEEE"
end if
end if
%>
och utan sista end if får jag
Microsoft VBScript compilation error '800a03f6'
Expected 'End'
/mail/meddelanden.asp, line 124
Nån som en lösning på detta "delikata" problem :-)
emissionMedlem sedan dec. 19996 721 inlägg Det saknas end if i första if-satsen och det finns ingen loop-avslutning på den sista "do while"-loopen.
Var extra end if på fel ställe, nu loopas alla ut som de ska men även om jag ändrar limit till 10 och 5 så visas alla.....ingen limit körs
set vipCheck=objConn.Execute("SELECT vip, username, sender mailID, Reciever "&_
"FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.sender "&_
"WHERE Reciever='"& Session("userID") &"' order by mailID desc")
if vipCheck.eof then
response.write "finns ej"
else
strSQL = "SELECT mailRead, username, mailDate, mailTime, sender, Headline, message, mailID,Reciever, vip, saveMail "&_
"FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.sender "&_
"WHERE Reciever='"& Session("userID") &"' order by mailID desc "
if vipCheck("VIP") = "1" then ' eller vad du nu har
sqlStr = sqlStr + " limit 0,1000"
else
sqlStr = sqlStr + " limit 0,500"
end if
end if
När jag skriver ut satsen får jag inte med limit
SELECT mailRead, username, mailDate, mailTime, sender, Headline, message, mailID,Reciever, vip, saveMail FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.sender WHERE Reciever='1' order by mailID desc
@ndersMedlem sedan juni 200032 969 inlägg [b]strSQL[/b] = ...
if vipCheck("VIP") = "1" then ' eller vad du nu har
[b]sqlStr[/b] = ...
else
[b]sqlStr[/b] = ...
end if
I övrigt skall du använda &, inte + för att konkatenera.
Denna kod fungerade, det lustiga är att jag fick byta plats, om vip är 1....dvs sann så ska den vara 1000 inte 100 och tvärtom
if vipCheck.eof then
response.write "finns ej"
else
if vipCheck("VIP") = "1" then
sqlStr = "limit 100"
else
sqlStr = "limit 1000"
end if
strSQL = "SELECT mailRead, username, mailDate, mailTime, sender, Headline, message, mailID,Reciever, vip, saveMail "&_
"FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.userID = tblUsers_imail.sender "&_
"WHERE Reciever='"& Session("userID") &"' order by mailID desc "&sqlStr
end if
emissionMedlem sedan dec. 19996 721 inlägg Är det verkligen en sträng som är lagrad i vipCheck("VIP")?