$_SESSION sounds like a good way to go.. It just means that each user will pull the data for the menu at least once.
I've done something similar except it was a rather slow database query, followed by a bunch of conditional data parsing. The end result wasn't very much data (maybe a page's worth) but took a little while to compile so we wanted to cache the data so it was only pulled once per day. Here's what I did: 1. Check cache store in database to see if we have data for today. I created a 'cache' table in a database with the following fields: CacheID, CacheDate, CacheData, CacheDesc or something like that. CacheID - Primary key, unique ID (autonum or SQLServer 'idenity' field) CacheDate - Date of last stored cache, does it equal today? If not, pull new data CacheData - Here's the fun part. I collected all the data into an array, SERIALIZED the array and stored that into this field. All data in one big chunk. CacheDesc - Since I have multiple caches..or potentially do.. I put a test desc so I can go in using WinSQL or something and know what it is. That's for the humans :) 2. If we have data for today, pull it from the cache. Unserialize data, run it through the same output processing function that I use for 'fresh' data since it's already in the correct format 3. If cache isn't present, pull new data, insert/update database, display data. This way, only the first user of every day will get the 'slow' treatment. You can also set up a scheduled 'job', or even a scheduled task on your desktop that hit the web page at 12:01am if you leave your PC on. Any kind of scheduling will do. That was my solution and for what I needed, it's a little better than the $_SESSION deal because I may have 20 people access the data once or twice at various times of the day. So session might expire and it's a fairly slow report (well, 30 seconds give or take) and they're impatient. -TG > -----Original Message----- > From: Vincent DUPONT [mailto:[EMAIL PROTECTED] > Sent: Wednesday, January 28, 2004 3:49 AM > To: [EMAIL PROTECTED] > Cc: [EMAIL PROTECTED] > Subject: [PHP] Cacheing data form PHP script > > > Hi all, > > I use a HTML menu that is created from multiple database > queries. This is powerfull and very extendable. > The problem is that the queries have to be executed on every > new page or request. > Moreover, the menu won't change very often for the users. > > So I would like to 'cache' the HTML code that is generated. > If one admin add/remove/update one menu, I need to clear the cache. > > At the moment, I store the HTML code to display the menu in > the $_SESSION['menu_cache']['menu_id'] var. And this works > well! The pages are displayed faster when the menu is in the > cache, which is the expected result! > > What is your opinion about this? > Do you see any other way to 'cache' some content? > > Could I use the $_ENV variable (or any other) to cache the > menus accross ALL visitors/users? > > Thank you > > Vincent > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php