Re: Imposing a range on what is stored in a session variable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Miller, Terion wrote:
> 
> 
> On 7/27/09 9:40 AM, "Jim Lucas" <lists@xxxxxxxxx> wrote:
> 
> Miller, Terion wrote:
>> I want to store only 1000 records at a time in the session variable thought I could use a range(1,1000....
>>
>> How would you do this, store the first 1000 , then the second on refresh etc
>>
>> My snippet so far
>>
>> -----------------------
>>                                             // Process all results into $_SESSION array                                                                       $position = 1;                                                                            while ($row = mysql_fetch_array($result))                                      {                                      $_SESSION['fullRestaurantList'][$position] = $row;                                      $position++;                                                                             foreach(range('1','1000') as $c){                                                   ($position == $c)
>>                                                     $_SESSION['totalNumberOfRestaurants'] = $c;                                      }                                                                                                                                                    }
>>
> 
> Use the mysql function for this called LIMIT.  It LIMITs the amount of
> data returned.
> 
> SELECT * FROM table_name LIMIT 1000
> 
> 1. it will make your SQL calls much faster
> 2. it will use less memory
> 
> 
> 
> 
> But that limits results right, if a query generated more then 1000 records how would a user be able to access 1001 ..put the query in a loop?

Bastien gave you all the info:

You should look at paging the data here with the OFFSET portion of the
limit clause

Select * from restaurant [where clause]limit 1000, $offset

where the $offset value can tell you where to start in the 17K rows of
data so that in effect you show records 1-1000, 1001-2000,
2001-3000...then on the page, just provide a set of links of navigate
the recordset by the user  [ << < 1-1000 1001-2000 2001-3000 > >> ]

***

So you would generate page that had the first 1000 records and a Next >
link that linked maybe to the same page with ?start=1001.  Then use the
$_GET['start'] to generate the next set of results staring at 1001.


-- 
Thanks!
-Shawn
http://www.spidean.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux