Jump to content


Find entry number within a table

  • Please log in to reply
2 replies to this topic

#1 zebe

  • Members
  • PipPip
  • Member
  • 24 posts

Posted 12 January 2006 - 04:12 PM


I was wondering if there is a way to determine a specific entry's number (location) within it's table? Not an auto increment field, as entries may be deleted. I want to be able to display to the user the current record they are on, i.e. "Viewing record 8 out of 37"

Is there a mysql function that can do this?

Thanks for your help!

#2 marker5a

  • Members
  • PipPipPip
  • Advanced Member
  • 30 posts

Posted 12 January 2006 - 05:29 PM

I think I have an idea, but pay close attention its sort of complicated.

Setup an auto_increment field, not to tell what number row it is, but just to serve as a unique value to the row.

Then, when you pull a row from the database, to find out what row it is, you would find out how many rows there are up to that record.

So, you would run another query as follows
$number_record=mysql_num_rows(mysql_query("SELECT * FROM `table` WHERE id<=$row_id"));

the id field is the auto_increment, andthe $row_id variable needs to be populated with the id from the row you are pulling.

Hope this helps you


#3 fenway

  • Staff Alumni
  • MySQL Si-Fu / PHP Resident Alien
  • 16,199 posts
  • LocationToronto, ON

Posted 12 January 2006 - 06:18 PM

Well, if you know that there are 37 -- because you know how many rows were returned -- then it should be easy to keep a counter in PHP as you iterate though the result set. However, if you want it to come back from the DB, you'll have to use a server variable, set it to 0 before you issue your select query, and have one of the columns in the SELECT statement return the value and increment the server variable.

Hope that helps.
Seriously... if people don't start reading this before posting, I'm going to consider not answering at all.

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users