---
title: "Dynamisk limit i mySQL"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/141072-dynamisk-limit-i-mysql"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "WebbisNet"
published: "2006-01-18T01:55:51.000Z"
updated: "2006-01-23T05:42:29.000Z"
replies: 16
views: 561
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/141072-dynamisk-limit-i-mysql"
---

# Dynamisk limit i mySQL

## #1 — WebbisNet, 2006-01-18T01:55Z

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 "
```

Permalänk: https://www.webforum.nu/p/141072

## #2 — LarsG, 2006-01-18T09:15Z

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.

Permalänk: https://www.webforum.nu/p/1747846

## #3 — WebbisNet, 2006-01-18T13:54Z

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 "
```

Permalänk: https://www.webforum.nu/p/1747995

## #4 — Melea, 2006-01-18T13:58Z

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.

Permalänk: https://www.webforum.nu/p/1747999

## #5 — LarsG, 2006-01-18T14:02Z

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

Permalänk: https://www.webforum.nu/p/1748004

## #6 — WebbisNet, 2006-01-18T14:03Z

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å

Permalänk: https://www.webforum.nu/p/1748005

## #7 — Melea, 2006-01-18T14:04Z

Typ så ja. :)

Permalänk: https://www.webforum.nu/p/1748006

## #8 — @nders, 2006-01-18T14:07Z

Inte alls typ så...

Det här är grundläggande VBScript...

```
if Cint(vipCheck("vip")) = 1 then
     varVIPlimit = 1000
else
     varVIPlimit = 500
end if
```

Permalänk: https://www.webforum.nu/p/1748009

## #9 — Melea, 2006-01-18T14:08Z

> **@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.

Permalänk: https://www.webforum.nu/p/1748010

## #10 — @nders, 2006-01-18T14:08Z

Melea: OK :)

Permalänk: https://www.webforum.nu/p/1748011

## #11 — WebbisNet, 2006-01-18T14:18Z

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 & "'> &laquo; Föregående</a> "
    else
        If intp < 2 then
              response.write "&nbsp;"
        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 &raquo;</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

Permalänk: https://www.webforum.nu/p/1748022

## #12 — WebbisNet, 2006-01-22T20:21Z

Nån som en lösning på detta "delikata" problem :-)

Permalänk: https://www.webforum.nu/p/1752821

## #13 — emission, 2006-01-22T21:24Z

Det saknas end if i första if-satsen och det finns ingen loop-avslutning på den sista "do while"-loopen.

Permalänk: https://www.webforum.nu/p/1752867

## #14 — WebbisNet, 2006-01-22T21:36Z

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

Permalänk: https://www.webforum.nu/p/1752875

## #15 — @nders, 2006-01-23T04:08Z

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

Permalänk: https://www.webforum.nu/p/1752920

## #16 — WebbisNet, 2006-01-23T04:30Z

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

Permalänk: https://www.webforum.nu/p/1752921

## #17 — emission, 2006-01-23T05:42Z

Är det verkligen en sträng som är lagrad i vipCheck("VIP")?

Permalänk: https://www.webforum.nu/p/1752924

---

Tråden på webben: https://www.webforum.nu/amne/asp/141072-dynamisk-limit-i-mysql
