I agree with both Peter and Mengü, in a manner of speaking. Assuming you want visitors to return, I think it's best to use sessions and cookies so that they're not served the same image twice. Passing that information between pages is easy with Peter's method. Mengü's technique (albeit slightly altered) would work well at storing that information for future use. Storing this information is *very* important. If users keep seeing the same images, they won't return. Edward Dudlik Becoming Digital www.becomingdigital.com ----- Original Message ----- From: "Peter Beckman" <beckman@purplecow.com> To: "Matthew Horn" <mhorn@macromedia.com> Cc: <php-db@lists.php.net> Sent: Wednesday, 28 May, 2003 10:29 Subject: Re: hotornot functionality Uh, why not just do this: <input type='hidden' name='lastid' value='1930'> Then on the next page, you can get the id. Or geez, it's gonna be there anyway -- after you do the insert/update of your vote, just pass that ID to the function that displays the page. function display($x) { if (!empty($x['vote'])) { db_query("insert into vote (pid,vote) values (".$x['thisid'].",".$x['vote'].")"); } $r = db_query("select * from pictures order by rand() limit 1"); $row = mysql_fetch_array($r); // sure, do error checking if you want beginpage($x['thisid'],$x['vote']); votebar($row['pid']); echo "<img src='".$row['imgurl']."'>"; endpage(); } assuming beginpage is responsible for displaying the last image you voted on. Peter On Wed, 28 May 2003, Matthew Horn wrote: > I am toying with the idea of implementing functionality similar to the hotornot.com site -- for a different purpose, mind you, but the same kind of user experience. Here's what it does: > > 1. A picture is served up. > 2. User clicks on a radio button scale from 1 to 10 to "rate" the picture. > 3. The page refreshes. The rating is re-computed with the user's rating for the original picture. The original picture becomes that "last rated" pic, and a new one is served up. > 4. The user can cycle through as many pictures this way as they want. > > I have MySQL and PHP to work with. > > What I am trying to do is figure out the best approach to implementing it. Specifically, when the user clicks on the radio button, that triggers the form submit via JavaScript. The form submit updates the database with the rating and then fetches the next row. > > The problem that occurred to me as I was putting together a prototype is: > > I don't want the user to get the entire result set of all the images in the database at once. I really want them to get just the two images (the one they just rated and the one they are about to rate). Is there a way to "remember" the last row they selected and then use that number to fetch the next one on the subsequent request? I can keep recycling hidden form fields with a number, which should work ok, but the problems come up when they reach the last row. > > Anyway, just looking to see if you folks have some ideas. I would prefer to roll my own rather than use one of the available "hotornot-style" PHP scripts to do this. > > -------- > > Matthew J. Horn > > -- > PHP Database Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > --------------------------------------------------------------------------- Peter Beckman Internet Guy beckman@purplecow.com http://www.purplecow.com/ --------------------------------------------------------------------------- -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php