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