Данные SQL — кодировать JSON в определенном формате

У меня есть php-код, который я использую вместе с sql для получения результатов из базы данных на основе номера советника и идентификационного номера для их построения.

<?php
$sql=
("SELECT D as y,Total as a,PoweredOn as b
FROM MasterUsageTable
WHERE ID IN
(SELECT ID FROM MasterUsageTable
WHERE EA_Number = '$valueEA' AND D BETWEEN #$valueSDate# AND #$valueEDate#)");

$rs = odbc_exec($con, $sqlVMs);
if (!$rs) {
exit("Enter EA!");
}
$data = array();
while ($row = odbc_fetch_array($rs)){
$data[] = $row;
}

echo json_encode($data);
?>

В настоящий момент мои результаты после кодирования json выглядят так:

[{ «У»: «2015-03-26», «а»: «16», «б»: «14»}, { «у»: «2015-03-26
» «А»: «59», «б»: «12»}, { «у»:» 2015-03-26
» «А»: «21», «б»: «5»}, { «у»:» 2015-03-26
«,» a «:» 35 «,» b «:» 12 «}, {» y «:» 2015-03-26 «,» a «:» 17 «,» b «:» 2 «}]

Я надеялся, что есть какой-то способ разделить их следующим образом:

[{ «У»: «2015-03-26», «а»: «16», «б»: «14»}, { «у»: «2015-03-26
» «А»: «59», «б»: «12»}, { «у»:» 2015-03-26
» «А»: «21», «б»: «5»}], [{ «у»:» 2015-03-26
«,» a «:» 35 «,» b «:» 12 «}, {» y «:» 2015-03-26 «,» a «:» 17 «,» b «:» 2 «}]

Так что это несколько массивов данных, в зависимости от того, какой ID это. Надеюсь, что это имеет смысл, спасибо

2

Решение

Один из способов сделать это — использовать внешний цикл по идентификатору и внутренний цикл для извлечения значений для каждого значения идентификатора, что-то вроде этого:

<?php
// test data
$valueSDate = "2015-03-26";
$valueEDate = "2015-03-26";
$valueEA = "EA1";

$allData = array();
$con = odbc_connect(
"Driver={Microsoft Access Driver (*.mdb, *.accdb)};" .
"Dbq=C:\\Users\\Public\\Database1.accdb;",
"Admin", "");
$rs1 = odbc_exec($con,
"SELECT DISTINCT ID " .
"FROM MasterUsageTable " .
"WHERE EA_Number = '$valueEA' " .
"AND D BETWEEN #$valueSDate# AND #$valueEDate#");
while ($row1 = odbc_fetch_array($rs1)) {
$id = $row1["ID"];
$rs2 = odbc_exec($con,
"SELECT D as y,Total as a,PoweredOn as b " .
"FROM MasterUsageTable " .
"WHERE ID = $id AND EA_Number = '$valueEA' " .
"AND D BETWEEN #$valueSDate# AND #$valueEDate#");
$idData = array();
while ($row2 = odbc_fetch_array($rs2)) {
$idData[] = $row2;
}
$allData[] = $idData;
}

echo json_encode($allData);
0

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

Других решений пока нет …

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