Anton Heuschen schreef: > This might sound trivial, but for the live of me cant seem to get it to > work, and I am not familiar with such a thing. seems like you've done your best to make it sound as confusing as possible, this happens sometimes when you no longer see the wood for the trees :-) > > What I have is a query lets say : > > select country,name,population from USERS where id= 'some_id' "; > 'USERS' seems like an odd namew for the table in question. > > Now I want to assign the result to one set (The above example might have 3+ > entries per telephone, thus what would be nice is something like an array of per telephone? where do these telephones come from? is that a freudian slip? did the phone ring whilst you we're writing that sentence? keep reading ... it gets more php related as we go one ... > : > > > [id][country][name] = population .......... or to be exact if I echo the > value for each id and country and name to get the population value > > > Like : > > Array { > > [id] array { > [country] array { > [0] = USA > } > [name] array { > [0] = test > > } > > } > I'm not grokking that array structure much. > > > > I dont know something like that, maybe Im over comlicating the question now > even, the main thing is wondered was in the first place was with a standard > query and variable assign, from the query like: > > select country,name,population from USERS where id= 'some_id' "; > > normally you would just assign each field to one variable. like > > $country = result["country"] > $name = result["name"] sidenote: I never see the point of assign the vars like that anyhow, why not just use $result['name'] and do away with the exytra $name var? > > > But now I want all 3 fields as one variable (which would be an array) ..but > how ? why? I'd guess it's because you want to do a 'look-up' of the data, that would suggest you don't want to be extracting the data on a row by row basis, but rather grab all the data and parse it into a format you can use for multiple look ups, here's a little class idea,maybe it offers some inspiration/insight/relief (it untested because I can't be bothered to setup a DB): abstract class Populations { static function getAll($type = null) { self::init(); if ($type) { return isset(self::$data[$type]) ? self::$data[$type] : null; } return self::$data; } static function byId($id) { return self::get('names', intval($id)); } static function byPlaceName($name) { return self::get('names', strtolower(trim($name))); } static function byCountryName($name) { return self::get('countries', strtolower(trim($name))); } static private function get($k, $v) { self::init(); if (isset(self::$data[$k][$v])) return self::$data[$k][$v]; return null; } private static function init() { if (!isset(self::$data)) self::loadData(); } private static function loadData() { self::$data = array( 'ids' => array(), 'names' => array(), 'countries' => array(), ); // let's assume that the following query will only return // a reasonable number of rows (i.e. not a very large number) // let's also assume that a db connection has been setup $res = mysql_query('SELECT id, country, name, population FROM users'); if ($res && mysql_num_rows($res)) { while ($row = mysql_fetch_assoc($res)) { $i = $row['id']; $n = strtolower(trim($row['name'])); $c = strtolower(trim($row['country'])); self::$data['ids'][$i] = self::$data['names'][$n] = $row['population']; if (!isset(self::$data['countries'][$c])) self::$data['countries'][$c] = 0; self::$data['countries'][$c] += $row['population']; } } } } you would use this class something like: echo Population::byId(1), "\n"; echo Population::byPlaceName("Texas"), "\n"; echo Population::byCountryName("USA"), "\n"; var_dump(Population::getAll("names")); var_dump(Population::getAll()); > > I hope I have not totally confused the question now. if you didn't then I probably have. enjoy. > > Thanks in advance > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php