iT邦幫忙

1

PHP抓取SQL資料 陣列中不覆蓋值的作法

各位大神好~
我想要以PHP抓取SQL的值,
並且存入PHP中宣告的陣列中,
但想要經過GROUP整理後輸出每一筆資料並轉存JSON值...
而這個JSON值是想要放在echarts圖表中的!
這樣說有點抽象,以下附上我的資料表與PHP~

1.資料表(資料表名稱為absent_view)
https://ithelp.ithome.com.tw/upload/images/20210914/20141966U5CJxTxerN.jpg

2.PHP(有寫一些了)
https://ithelp.ithome.com.tw/upload/images/20210914/20141966QJHzKu5tJN.jpg

3.目前的JSON資料(以"absnum": "5"來做範例)
https://ithelp.ithome.com.tw/upload/images/20210914/20141966tf3Yt6Z5X6.jpg

4.想要的JSON資料(以"absnum": "5"來做範例,我也不確定我這樣的資料可不可以用於echarts,但我想要的是PHP抓SQL的值經過while迴圈後值不會被覆蓋!)
[
{

"absnum": "5",
"xabsnum": "曠課5次",
"total": "2",
"absentid": "107028",
"namearray": [{
"葉穎麟","傅璇延",
},]

},

]

求求各位大神的幫忙了!!!謝謝~~

看更多先前的討論...收起先前的討論...
Hankz iT邦新手 4 級 ‧ 2021-09-14 17:36:48 檢舉
恩..我看你期望結果的"namearray"是所有曠課五次的人名
可是你的SQL語法已經group by了attnum
那結果就不會有所有的人名啊...
你要不要先確認SQL撈出來的陣列有沒有包含你要的東西

如果我理解錯誤,那就當作沒看到...
迷路 iT邦新手 5 級 ‧ 2021-09-15 08:36:35 檢舉
先把迴圈中的資料輸出,看看是否為預期的內容
GROUP_CONCAT(name),然後再處理
hoo0723 iT邦新手 5 級 ‧ 2021-09-15 16:13:46 檢舉
謝謝各位大神的幫忙!!

2 個回答

0
jouabcd
iT邦新手 2 級 ‧ 2021-09-14 16:44:40
$data[] = $user;

改成

array_push($data,$user);
hoo0723 iT邦新手 5 級 ‧ 2021-09-15 16:14:04 檢舉

謝謝~~

0
海綿寶寶
iT邦大神 1 級 ‧ 2021-09-15 09:06:26

https://ithelp.ithome.com.tw/upload/images/20210915/20001787OoWFzUSkIQ.png

把以下程式碼
貼到練習區
看看是否是你要的結果
如果是
再回來想 php 要怎麼寫

import * as echarts from 'echarts';

var chartDom = document.getElementById('main');
var myChart = echarts.init(chartDom);
var option;

option = {
    xAxis: {
        data: ['5次']
    },
    yAxis: {},
    dataGroupId: '',
    animationDurationUpdate: 500,
    series: {
        type: 'bar',
        id: 'sales',
        data: [{
            value: 2,
            groupId: '5times'
        }],
        universalTransition: {
            enabled: true,
            divideShape: 'clone'
        }
    }
};

var drilldownData = [{
    dataGroupId: '5times',
    data: [
        ['葉穎麟', 1],
        ['傅璇延', 1]
    ]
}, {
    dataGroupId: 'fruits',
    data: [
        ['Apples', 4],
        ['Oranges', 2]
    ]
}, {
    dataGroupId: 'cars',
    data: [
        ['Toyota', 4],
        ['Opel', 2],
        ['Volkswagen', 2]
    ]
}];

myChart.on('click', function (event) {
    if (event.data) {
        var subData = drilldownData.find(function (data) {
            return data.dataGroupId === event.data.groupId;
        });
        if (!subData) {
            return;
        }
        myChart.setOption({
            xAxis: {
                data: subData.data.map(function (item) {
                    return item[0];
                })
            },
            series: {
                type: 'bar',
                id: 'sales',
                dataGroupId: subData.dataGroupId,
                data: subData.data.map(function (item) {
                    return item[1];
                }),
                universalTransition: {
                    enabled: true,
                    divideShape: 'clone'
                }
            },
            graphic: [{
                type: 'text',
                left: 50,
                top: 20,
                style: {
                    text: 'Back',
                    fontSize: 18
                },
                onclick: function () {
                    myChart.setOption(option);
                }
            }]
        });
    }
});

option && myChart.setOption(option);
hoo0723 iT邦新手 5 級 ‧ 2021-09-15 15:57:37 檢舉

OK,謝謝!

我要發表回答

立即登入回答