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

From: Date: Mon, 27 Jul 2009 15:35:27 +0000
Subject: Re: Imposing a range on what is stored in a session variable
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-295890@lists.php.net to get a copy of this message
On Mon, Jul 27, 2009 at 11:25 AM, Shawn McKenzie<nospam@mckenzies.net> wrote: > Miller, Terion wrote: >> >> >> On 7/27/09 9:40 AM, "Jim Lucas" <lists@cmsws.com> 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 > > correct -- Bastien Cat, the other other white meat

« previous php.general (#295890) next »