[eluser]jblack199[/eluser]
that would just depend on the way you're going to get the table anyway... when the client is added into the system, thats when the table would be created and the prefix would be off something in their information not client1 but like their first name and maybe the last 4 of a client id or something of the sort...
in which case it would be rather easy to do table prefixing... but it all depends on how the functions itself are going to work....
now instead of a table prefix i'd run off 1 table with 4 colums... id, c_id, data and info
id would be primary and auto_increment.. c_id would be the id of the client itself.. and then data and info would be whatever they would be in your method...
however by doing this, you still get the feel of separate tables but the speed in not having to create tables on the fly and not having to deal with any prefixing making the end result being less of a headache for you the programmer. just based off the way you've described what you're achieving this method would be the one I would use mainly for speed, as well as database cleanliness when it comes time for auditing, debugging or even upgrading.
However, if you are dead set on using table prefixing... you could theoretically do it so that the client is added... then you get the unique_id of the last query (the primary auto_increment field - mysql_insert_id() )and use that # as your prefix... so it'd be like
create table ('client'.$id.'_data) or create table ('client'.$id.'_info'); would would theoretically get you the result you're looking for and would make it easy to determine what tables belong to which client based on their unique id and nothing more than that.