Привет, сообщество

Я просто хочу спросить о моем коде. я просто хочу объединить мои 3 переменные

$result = mysqli_query($con, "SELECT disease,age,SUM(CASE WHEN gender = 'm' THEN 1 ELSE 0 END) AS `totalM`, SUM(CASE WHEN gender = 'f' THEN 1 ELSE 0 END) AS `totalF` FROM mdr where disease = '$diseaseselection' GROUP BY disease , age");
$chart_data = '';
while($row = mysqli_fetch_array($result))
{
    $tabx[]=$row['age'];
    $taby[]=$row['totalM'];
    $tabz[]=$row['totalF'];

}
$tableau=array_combine($tabx,$taby,$tabz);

foreach($tableau as $key=>$value){

    $string[]=array('age'=>$key,'totalM'=>$value,'totalF'=>$value);

}

echo json_encode($string);

Он отлично работает с этим кодом. с 2 переменными. и я хочу, чтобы это было сделано с помощью переменной дерева

$result = mysqli_query($con, "SELECT disease,age,SUM(CASE WHEN gender = 'm' THEN 1 ELSE 0 END) AS `totalM`, SUM(CASE WHEN gender = 'f' THEN 1 ELSE 0 END) AS `totalF` FROM mdr where disease = '$diseaseselection' GROUP BY disease , age");
$chart_data = '';
while($row = mysqli_fetch_array($result))
{
    $tabx[]=$row['age'];
    $taby[]=$row['totalM'];

}
$tableau=array_combine($tabx,$taby);

foreach($tableau as $key=>$value){

    $string[]=array('age'=>$key,'totalM'=>$value);

}

echo json_encode($string);

Вот мой ожидаемый результат

{ age:'0-1', totalM:2, totalF:1},

{ age:'1-4', totalM:1, totalF:0},

{ age:'10-14', totalM:0, totalF:1},

{ age:'15-19', totalM:0, totalF:1},

{ age:'5-9', totalM:0, totalF:3},

{ age:'55-59', totalM:6, totalF:0}
0
user11308569 16 Апр 2019 в 16:28

2 ответа

Лучший ответ
$result = mysqli_query($con, "SELECT disease,age,SUM(CASE WHEN gender = 'm' THEN 1 ELSE 0 END) AS `totalM`, SUM(CASE WHEN gender = 'f' THEN 1 ELSE 0 END) AS `totalF` FROM mdr where disease = '$diseaseselection' GROUP BY disease , age");

$chart_data = '';

$data = [];

while($row = mysqli_fetch_array($result)) {
    $data[] = [
        'age' => $row['age'],
        'totalM' => $row['totalM'], 
        'totalF' => $row['totalF']
    ];
}

echo json_encode($data);
1
R. Canser Yanbakan 16 Апр 2019 в 13:46

Нет необходимости использовать несколько массивов, вы можете получить желаемый результат с помощью многомерного массива.

$key = 0;
$output = [];
while($row = mysqli_fetch_array($result)){
 $output[$key]['age'] = $row['age'];
 $output[$key]['totalM'] = $row['totalM'];
 $output[$key]['totalF'] = $row['totalF'];
 $key++;
}
echo json_encode($output);
0
jigs_ 16 Апр 2019 в 13:57