Ok, here's the controlled solution. What I didn't realize was that the data was entering MySQL serialized.
- Code:
$UserData = 3;//UserID; to be set as a counter on a later loop edit
//create the query to the database
$query = "SELECT meta_value FROM wp_usermeta WHERE user_id='$UserData' && meta_key='wp_s2member_custom_fields'";
$results = $wpdb->get_col($query); //set the results to a usable variable
/*
## create an array to holdand unserialize the string,
## which places it into a key=>value pair with 'key' being
## the field name and 'value' being the value of the field
*/
$field_value_pairs = unserialize ($results[0]);
/*
# create a multidimensional array to connect all of
# the field=>value pairs to the user
*/
$Fields_By_User = array
(
$UserData => $field_value_pairs
);
/*
# To access the array you need to use the the keys of the
# user [$UserData] and the field names ['samplefield1']
# so if you had a field with the name 'city' you would get
# it's value buy typing $Fields_By_User[$UserData]['city'];
*/
echo $Fields_By_User[$UserData]['samplefield1'];
An un-commented example of how you would create a multidimensional array of users with field values would be: **Note, the loop is not tested and is for examples of use only.
- Code:
$user_query = $wpdb->get_col( $wpdb->prepare("SELECT $wpdb->users.ID FROM $wpdb->users " ));
$UserData = count($user_query);
$Fields_By_User = array(
for($i=0;$i<$UserData;$i++)
{
$query = "SELECT meta_value FROM wp_usermeta WHERE user_id='$i' && meta_key='wp_s2member_custom_fields'";
$results = $wpdb->get_col($query);
$field_value_pairs = unserialize ($results[0]);
$i => $field_value_pairs
} );
Not bad for 10 lines of code, eh? Anyone able to help me make it even better?
Statistics: Posted by Guest — November 8th, 2010, 12:45 am