Jason Soza wrote:
> I have a 'name' field in a MySQL table that contains people's first and
> last names, i.e. "John Smith" - but some people may choose not to
> include their last name, so they're just "John" in the table, or they
> may choose to include themselves and someone else, but not the last
> name, "John and Jane".
> I'm thinking the easiest way to sort by last name, which is what I want
> to do, is to just go into MySQL and make 'first_name' and 'last_name'
> fields, but if there's a way to do this with PHP that'd be great, so
> then I wouldn't have to mess with the table and data.
> Anyhow, I've looked up sort() and asort() in the PHP manual, but I'm
> not sure how I'd go about this. I assume I'd use some kind of function
> to read the 'name' field to the first space, take what it finds after
> the space and put it into an array, then have some if/else statement to
> deal with the lack of a space or the presence of multiple spaces, then
> use sort() on that array.
> Just looking for some guidance, maybe a specific function or bit of
> code. Anything that'd help. Or if this would be more easily addressed
> by reconfiguring my MySQL table, just let me know.
> Jason Soza
via MySQL you can search by and order/sort by a substring'ed result. Of
course, when someone only puts one name or they enter multiple first
names, it doesn't work quite the way it's supposed to.
For what i do, the following query returns the first letter of the last
name in alphabetical order.
SELECT substring(substring_index(fullname,' ',-1),1,1)
GROUP BY substring(substring_index(fullname,' ',-1),1,1)
ORDER by substring_index(fullname,' ',-1) ASC
There is a demo at http://www.defconzero.com/user.php?op=view
Hope that provides some insight.
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php