2012-04-06 2 views
0

Я пытаюсь преобразовать mySQL-запрос в объект JSON. Это работает:Преобразование mysql-запроса в объект JSON с использованием php?

<?php 
// load in mysql server configuration (connection string, user/pw, etc) 
include 'mysqlConfig.php'; 
$year = $_GET['year']; 
// connect to the database 
@mysql_select_db($dsn) or die("Unable to select database"); 

// outputs the db as lines of text. 
$result = mysql_query("SELECT COUNTY, COUNT(TYPE) AS 'type' from data WHERE DATE between '2000-01-01' and '2000-12-31' GROUP BY COUNTY"); 
$rows = array(); 

while($r = mysql_fetch_assoc($result)) { 
    $rows[] = $r; 
} 

echo json_encode($rows); 
mysql_close(); 

?> 

Но я получаю этот выход:

[{"COUNTY":"Carlow","type":"121"},{"COUNTY":"Cavan","type":"130"},{"COUNTY":"Clare","type":"112"},{"COUNTY":"Cork","type":"833"},{"COUNTY":"Donegal","type":"264"},{"COUNTY":"Dublin","type":"2457"},{"COUNTY":"Galway","type":"287"},{"COUNTY":"Kerry","type":"227"},{"COUNTY":"Kildare","type":"300"},{"COUNTY":"Kilkenny","type":"139"},{"COUNTY":"Laois","type":"123"},{"COUNTY":"Leitrim","type":"39"},{"COUNTY":"Limerick","type":"370"},{"COUNTY":"Longford","type":"85"},{"COUNTY":"Louth","type":"257"},{"COUNTY":"Mayo","type":"231"},{"COUNTY":"Meath","type":"268"},{"COUNTY":"Monaghan","type":"136"},{"COUNTY":"Offaly","type":"97"},{"COUNTY":"Roscommon","type":"115"},{"COUNTY":"Sligo","type":"113"},{"COUNTY":"Tipperary","type":"249"},{"COUNTY":"Waterford","type":"205"},{"COUNTY":"Westmeath","type":"118"},{"COUNTY":"Wexford","type":"246"},{"COUNTY":"Wicklow","type":"235"}] 

в то время как это формат Ищу:

{"Carlow":3,"Cavan":4,"Clare":5,"Cork":3,"Donegal":4,"Dublin":5,"Galway":4,"Kerry":5,"Kildare":5,"Kilkenny":12,"Laois":4,"Leitrim":4,"Limerick":4,"Longford":4,"Louth":4,"Mayo":5,"Meath":3,"Monaghan":5,"Offaly":4,"Roscommon":3,"Sligo":3,"Tipperary":4,"Waterford":2,"Westmeath":2,"Wexford":4,"Wicklow":2} 

Любые идеи?

+0

Пожалуйста, объясните подробно. Что означает 3,4,5? – Kamal

ответ

2

Оно должно быть:

while($r = mysql_fetch_assoc($result)) { 
    $rows[$r['COUNTRY']] = $r['type']; 
} 
+0

Я предполагаю, что eoin не хочет принимать $ r ['type']. Может быть, он хочет добавить 3,4,5 и т. Д. не 121,130 и т. д. (например, тип), если я не ошибаюсь. – Kamal

+0

Эй, это замечательно, спасибо миллион. Еще одна вещь: есть ли вообще возможность превратить значение в целое число, то есть избавиться от двойных кавычек вокруг значений. Я использую этот скрипт для передачи значений sql в фреймворк d3 на основе javascript. – eoin

+0

@eoin просто использовать тип cast '(int) $ r ['type'];' – xdazz

0
while($r = mysql_fetch_assoc($result)) { 
$rows[] = $r; 
} 

Должно быть

while($r = mysql_fetch_assoc($result)) { 
$rows[] = array($r['COUNTY'], $r['type']); 
} 
+0

, который подводит меня ближе, но не совсем то, что мне нужно: [[«Carlow», «121»], [«Cavan», «130»], [«Clare», «112»], [«Cork», 833 "], [" ДОНЕГОЛ " "264"], [ "Дублин", "2457"], [ "Голуэй", "287"], [ "Керри", "227"], [ "Килдар"," 300 "], [" Килкенни " "139"], [ "Лиит", "123"], [ "Литрит", "39"], [ "Лимерик", "370"], [ "Лонгфорд"," 85 "], [" Лаут " "257"], [ "Майо", "231"], [ "Мит", "268"], [ "Монаган", "136"], [ "Оффали"," 97 "], [" Роскоммон " "115"], [ "Слайго", "113"], [ "Типперери", "249"], [ "Уотерфорд", "205"], [ "Уэстмит"," 118 "], [" Wexford "," 246 "], [" Wicklow "," 235 "]] – eoin

+0

Можно ли избавиться от квадратных кронштейнов, иметь все между 1 парой фигурных скобок и иметь двойные кавычки вокруг округ не значение? – eoin

Смежные вопросы