MySQL 和推送查询数组在一起

标签 mysql sql arrays array-push

我这里有这段代码

$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 () 期望参数 1 为数组,给定整数

我做错了什么或者有更好的方法吗?

谢谢, J

最佳答案

为什么不使用 [] 语法?

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 返回一个整数,因此在循环的第二轮您将尝试传递一个整数作为 array_push 的第一个参数

关于MySQL 和推送查询数组在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14590856/

相关文章:

MySQL语法错误

c++ - 在繁重的模拟代码中,C++ 类/结构会比 C 数组明显慢吗

mysql - SQL ON DUPLICATE KEY 有 2 个唯一键?

MySQL concat 与 INNER JOIN

sql - 内容变化的表的最佳主键

sql - POSTGIS 拓扑异常 : side location conflict

javascript - sapui5 中的数据绑定(bind)问题 [我的列表中显示相同的值。]

javascript - body 背景模糊功能不适用于多种模式

php - laravel 5.4 内部查询中的变量未定义

MySQL - 如何使用存储的精度/小数位将数字转换为十进制?