The problem is that I get only the last value comming from the Table. I think its because I am building the array while referencing its values to the same object, and it keeps c
You need to create a new object on each iteration:
while ($row=mysql_fetch_array($result))
{
$nameAndCode = new stdClass;
$nameAndCode->code = $row['country_code2'];
$nameAndCode->name = $row['country_name'];
$namesArray[] = $nameAndCode;
}
Otherwise you're referencing the same object over and over, and just overwriting its values.
You also can do this with arrays if you don't require objects:
while ($row=mysql_fetch_array($result))
{
$nameAndCode = array();
$nameAndCode['code'] = $row['country_code2'];
$nameAndCode['name'] = $row['country_name'];
$namesArray[] = $nameAndCode;
}
Or more concisely:
while ($row=mysql_fetch_array($result))
{
$namesArray[] = array(
'code' => $row['country_code2'],
'name' => $row['country_name']
);
}