0

Mysqlクエリのレコードをカスタム配列に一覧表示できるかどうかを知りたいと思いました。

SELECT CAT.catgryname,count(JB.knifeid) AS total 
FROM jbs AS JB 
LEFT JOIN krgstrs AS KR ON KR.id = JB.knfid 
LEFT JOIN accnts AS ACC ON ACC.job_id = JB.id 
LEFT JOIN catgor AS CAT ON CAT.id = KR.subctid
WHERE JB.usrid =xxx  
GROUP BY CAT.catgryname

それは私に与えます

[0] => Array
        (
            [CAT] => Array
                (
                    [categoryname] => Fridge Magnet
                )

            [0] => Array
                (
                    [total] => 22
                    [MNTH] => Jan
                )

        )

次のようにネストされた2番目の配列の0ではなくカスタムインデックスが必要でした

[0] => Array
        (
            [CAT] => Array
                (
                    [categoryname] => Fridge Magnet
                )

            [DET] => Array
                (
                    [total] => 22
                    [MNTH] => Jan
                )

        )

ここでは、0ではなくDETに注意してください。

私は試した

SELECT CAT.catname,count(cat.id) as DET.total

ただし、ここではDETがテーブルであると解釈されるため、エラーが発生します。皆さんありがとう。

4

1 に答える 1

1

DB側ではこれを行いません。ただし、配列を取得する方法がわかりません(mysqliまたはmysqlPHP拡張機能を使用)。それにもかかわらず、コメントで指摘されているように、PHP側でそれを行ってください。

これを使ってみてください ($resultsは、説明したとおりの配列です - インデックスCAT0)

$newArray = array();
foreach($results as $result) {
    $newArray[] = array(
        'CAT' => array(
            'categoryname' => $result["CAT"]["categoryname"]
        ),
        'DET' => array(
            'total' => $result[0]["total"],
            'MNTH' => $result[0]["MNTH"]
        )
    );
}

そして、あなたは一緒に行きます$newArray

于 2013-02-01T10:30:38.887 に答える