sql >> データベース >  >> RDS >> Mysql

SQL結合の結果がcodeigniterのオブジェクトになります

    // first, we need the SQL results in the $result_array variable
    $sql = 'SELECT ...';  // your SQL command
    $result_array = $this->db->query($sql)->result_array();  // codeigniter code
    
    // here the real answer begins
    $result = array();
    
    foreach ($result_array as $row)
    {
        if (!isset($result[$row['authorid']])
        {
            $author = new StdClass();
            $author->authorid = $row['authorid'];
            $author->authorname = $row['authorname'];
            $author->books = array($row['books']);
            $author->favorited = array($row['favorited']);
            $result[$row['authorid']] = $author;
        }
        else
        {
            if (!in_array($row['books'], $result[$row['authorid']]->books))
            {
                $result[$row['authorid']]->books[] = $row['books'];
            }
            if (!in_array($row['favorited'], $result[$row['authorid']]->favorited))
            {
                $result[$row['authorid']]->favorited[] = $row['favorited'];
            }
        }
    }
    
    $result = array_values($result);
    echo json_encode($result);
    



    1. MySQLは行を動的な列数にピボットします

    2. クエリ内でDML操作を実行できない解決策はありますか?

    3. 多くの列を持つクエリで単一の列を集約します

    4. Oracleのテーブル/列/インデックス名が30文字に制限されているのはなぜですか?