I will take theirs and modify it just a little more to create the print_r() 
output that the OP suggested.

function getPopulationById($id) {
        $dataSet = array();
        if ( ( $result = mysql_query('SELECT country, name, population FROM 
users WHERE id = ' . $id) !== false ) {
                while ( $row = mysql_fetch_assoc($result) ) {
                        $dataSet[$id] = $row;
                }
        }
        return $dataSet;
}

This will return:

Array {
        [id] array {
                [country] = USA
                [name] = test
                [population] = 123
        }
}


OPs way would result in a layout like the following...

Array {
        [id] array {
                [country] = array
                        [0] = USA
                        }
                [name] = array
                        [0] = test
                        }
                [population] = array
                        [0] = 123
                        }
        }
}


I don't see a reason why the OP was suggesting that he do it this way...  I 
can't see the reason for the extra nested array for the final country,
name, and population values.  Should be the value, nothing more.

Chetan Rane wrote:
> Hi this is similar to what Dollah Ihsan had suggested , however I ave
> tweeked the getPopulationById function a bit.
> /**
>  * assume your table structure just like this.
>  * table: users
>  * |  id  |   country    |     name       |  population |
>  * ------------------------------------------------------------------
>  * |  1   |    Texas     |  Fort Worth  |    400000    |
>  *
>  */
> 
> function getPopulationById($id) {
>       // echo 'SELECT country, name, population FROM users WHERE id = ' .
> $id;die;
>       $result = mysql_query('SELECT country, name, population FROM users
> WHERE id = ' . $id);
>       While($row = mysql_fetch_assoc($result)) 
>               $pop[$id][$row['country']][$row['name']] =
> $row['population'];
>       return $pop;
> }
> 
> 
> Chetan Dattaram Rane | Software Engineer | Persistent Systems
> chetan_r...@persistent.co.in  | Cell: +91 94033 66714 | Tel: +91 (0832) 30
> 79014
> Innovation in software product design, development and delivery-
> www.persistentsys.com
> 
> 
> 
> 
> -----Original Message-----
> From: Dollah Ihsan [mailto:dollah.ih...@gmail.com] 
> Sent: Friday, March 06, 2009 3:04 PM
> To: Anton Heuschen
> Cc: php-general@lists.php.net
> Subject: Re: [PHP] Assign 2 values from Mysql to an array
> 
> I'm sorry if this is not what you're talking about...
> 
> /**
>  * assume your table structure just like this.
>  * table: users
>  * |  id  |   country    |     name       |  population |
>  * ------------------------------------------------------------------
>  * |  1   |    Texas     |  Fort Worth  |    400000    |
>  *
>  */
> 
> function getPopulationById($id) {
>       // echo 'SELECT country, name, population FROM users WHERE id = ' .
> $id;die;
>       $result = mysql_query('SELECT country, name, population FROM users
> WHERE id = ' . $id);
>       if(mysql_num_rows($result) != 1) return false;
>       $row = mysql_fetch_assoc($result);
>       $pop[$id][$row['country']][$row['name']] = $row['population'];
>       return $pop;
> }
> 
> $array = getPopulationById(1);
> print_r($array);
> // print_r($array) should be like this:
> // Array ( [1] => Array ( [Texas] => Array ( [Fort Worth] => 400000 ) ) )
> 
> On Fri, Mar 6, 2009 at 3:41 PM, Anton Heuschen <anto...@gmail.com> wrote:
>> 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.
>>
>> What I have is a query lets say :
>>
>> select  country,name,population from USERS where id= 'some_id' ";
>>
>>
>> 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
>> :
>>
>>
>> [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 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"]
>>
>>
>> But now I want all 3 fields as one variable (which would be an array)
> ..but
>> how ?
>>
>> I hope I have not totally confused the question now.
>>
>> Thanks in advance
> 


-- 
Jim Lucas

   "Some men are born to greatness, some achieve greatness,
       and some have greatness thrust upon them."

Twelfth Night, Act II, Scene V
    by William Shakespeare

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to