Как назначить пары ключ: значение из SQL в объект JavaScript с помощью PHP?

У меня есть следующие данные в базе данных SQL

cname, ccode, colour
Great Britain, GB, 1
Italy, IT, 1
France, FR, 1
Spain, ES, 1

Как я могу создать объект JavaScript, как показано ниже?

var countries = {"GB":1, "IT":1, "FR":1, "ES":1}

Пока у меня есть следующий код;

PHP

$query2 = "SELECT ccode,colour FROM country_data WHERE 1";
$result2 = mysql_query($query2);
if (!$result2) {
die('Invalid query: ' . mysql_error());
}

$rows2 = array();
while($r2 = mysql_fetch_assoc($result2)) {
$rows2[] = $r2;
}

JS

var colours = '<?php print json_encode($rows2); ?>';

Который возвращает:

[{"ccode":"GB","colour":"1"},{"ccode":"IT","colour":"1"},{"ccode":"FR","colour":"1"},{"ccode":"ES","colour":"1"}]

1

Решение

измените php-код, как сказано в ответах других, и это должно быть как

$rows2 = array();
while($r2 = mysql_fetch_assoc($result2)) {
$rows2[$r2['ccode']] = $r2['colour'];
}

если это не работает, попробуйте это:

$rows2 = array();
while($r2 = mysql_fetch_assoc($result2)) {
$rows2["'".$r2['ccode']."'"] = $r2['colour'];
}

если это также не работает, попробуйте это:

$rows2 = array();
while($r2 = mysql_fetch_assoc($result2)) {
$rows2[{$r2['ccode']}] = $r2['colour'];
}
1

Другие решения

изменить этот код

while($r2 = mysql_fetch_assoc($result2)) {
$rows2[] = $r2;
}

к этому:

while($r2 = mysql_fetch_assoc($result2)) {
$rows2[$r2['ccode']] = $r2['colour'];
}
2

По вопросам рекламы [email protected]