Hi David,
Ok a couple of things now that I see the code after creating a database table with your fields and testing.
You have a "Do while" loop which is setting the variables through several variations so it's not going to be possible after the loop. Because, remember if you just echo the row variable, it will take just the first one... but since the loop has already set that same variable in many different iterations, it will simply make what your trying to do null.
Now, if you want to just get the first record, you could do that before the loop and store the result into a new variable or you could create a separate query for the single record below the loop.
Your session variable actually works fine but when you try to combine it with the aforementioned PRV_Event_ID, it too then becomes NULL because the PRV_Event_ID is no longer a valid result. If you were to just set the session and then echo the session variable, it shows exactly as it should.
But, if you do a separate query to set the PRV_Event_ID, it will work fine in combination with the Session variable you have. But, keep in mind, you'll only get the first record there as well unless you loop through the results. You could also set the PRV_Event_ID and get the calculation of the session with it inside the loop you already have... you would just need to make and extra table cell and put the code you have after your loop inside that cell instead.
One other housekeeping issue I noticed was on your "rates =", you left out the "echo" before the variable which is what was keeping you from seeing just the display of your session variable.
Hopefully that helps... let me know if I didn't explain something clearly.
Shalom,
Brian