0

私はここにこのコードを持っています

$sql_array = array();
if($result['user_id'] == 'OA'){
                $sql = "select distinct id, FirstName, LastName from table_one ti left join table_two sp on (sp.user_id = ti.id) or (sp.user_id = ti.id)";
                $query = $this->db->query($sql);
                $results_array = $query->result_array();
                $sql_array = array_push($sql_array, $results_array);
            }
            elseif($result['user_id'] == 'SH'){
                $sql = "select distinct id, first_name, last_name from table_three teo left join table_two sp on sp.user_id = teo.id";
                $query = $this->db->query($sql);
                $results_array = $query->result_array();
                $sql_array = array_push($sql_array, $results_array);
            }elseif($result['user_id'] == 'OF'){
                $sql = "select distinct id, first_name, last_name from table_four os left join table_two sp on sp.user_id = os.id";
                $query = $this->db->query($sql);
                $results_array = $query->result_array();
                $sql_array = array_push($sql_array, $results_array);
            }elseif($result['user_id'] == 'US'){
                $sql = "select distinct ID, substring_index(display_name, ' ', 1) as 'FirstName', substring_index(display_name, ' ', -1) as 'LastName' from table_five tu left join table_two sp on sp.user_id = tu.id";
                $query = $this->db->query($sql);
                $results_array = $query->result_array();
                $sql_array = array_push($sql_array, $results_array);
            }

すべての$result['user_id']を調べて、$result['user_id']が何であるかに基づいて実行するクエリ文字列を確認します...上記のコードでエラーが発生しましたarray_push() expects parameter 1 to be array, integer given

私は何を間違っているのですか、それともこれを行うためのより良い方法がありますか?

ありがとう、J

4

2 に答える 2

1

[] 構文を使用しないのはなぜですか?

if($result['user_id'] == 'OA'){
            $sql = "select distinct id, FirstName, LastName from table_one ti left join table_two sp on (sp.user_id = ti.id) or (sp.user_id = ti.id)";
            $query = $this->db->query($sql);
            $results_array = $query->result_array();
            $sql_array[] = $results_array;
        }

エラーの理由についてはarray_push、配列変数への戻りに影響を与えるためです。問題はarray_push、整数を返すため、ループの 2 番目のターンで、整数を最初のパラメーターとして渡そうとすることです。array_push

于 2013-01-29T19:44:54.780 に答える
0

配列を整数値でオーバーライドしています。

array_push()配列内の新しい要素数を返します。

の最初の遭遇後: $sql_array = array_push($sql_array, $results_array);

$sql_array整数値になります。

私が収集したものから、あなたが使いたかったarray_merge()

array_merge()

于 2013-01-29T19:52:15.140 に答える