Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何优化SQL查询并向现有数组添加更多数组元素?_Php_Mysql_Sql_Arrays_Associative Array - Fatal编程技术网

Php 如何优化SQL查询并向现有数组添加更多数组元素?

Php 如何优化SQL查询并向现有数组添加更多数组元素?,php,mysql,sql,arrays,associative-array,Php,Mysql,Sql,Arrays,Associative Array,我有一个名为$insert\u users的数组,如下所示: Array ( [0] => 9def02e6337b888d6dbe5617a172c18d [1] => a6d22e4cc3f65778a60b359842bcec82 [2] => e17151c98358b60910d4d9fd6ae73ac4 [3] => 472d3d7eca74cb3518bcba787aee8540 ) foreach($insert_user

我有一个名为
$insert\u users
的数组,如下所示:

Array
(
    [0] => 9def02e6337b888d6dbe5617a172c18d
    [1] => a6d22e4cc3f65778a60b359842bcec82
    [2] => e17151c98358b60910d4d9fd6ae73ac4
    [3] => 472d3d7eca74cb3518bcba787aee8540
)
foreach($insert_users as $key => $value ) {


$sql  = " SELECT DISTINCT ud.user_mobile_number, u.user_first_name, u.user_last_name FROM OCN.users_groups_subscribe ugs JOIN OCN.users_details ud ON ud.user_id=ugs.subscribe_user_id JOIN OCN.users u ON u.user_id=ugs.subscribe_user_id WHERE ugs.subscribe_user_id ='".$value."'";

            $this->mDb->Query( $sql);
            $students_data = $this->mDb->FetchArray();                          
            }
现在,我必须从上面的数组中为每个ID启动一个SQL查询。我为此编写的代码如下:

Array
(
    [0] => 9def02e6337b888d6dbe5617a172c18d
    [1] => a6d22e4cc3f65778a60b359842bcec82
    [2] => e17151c98358b60910d4d9fd6ae73ac4
    [3] => 472d3d7eca74cb3518bcba787aee8540
)
foreach($insert_users as $key => $value ) {


$sql  = " SELECT DISTINCT ud.user_mobile_number, u.user_first_name, u.user_last_name FROM OCN.users_groups_subscribe ugs JOIN OCN.users_details ud ON ud.user_id=ugs.subscribe_user_id JOIN OCN.users u ON u.user_id=ugs.subscribe_user_id WHERE ugs.subscribe_user_id ='".$value."'";

            $this->mDb->Query( $sql);
            $students_data = $this->mDb->FetchArray();                          
            }
它为
$insert\u users
数组中的单个id元素返回以下数组:

Array
(
    [0] => Array
        (
            [user_mobile_number] => 9929933345
            [user_first_name] => Ashish
            [user_last_name] => Patil
        )

)
但我没有得到所需格式的数组。我需要以下格式的数组
$students\u data
,以及数组
$insert\u users
中的所有值:

Array(  
     [0]=>Array
     (
        [user_full_name] => Ashish Patil //This key should be newly generated & should contain values of keys user_first_name & user_last_name concatenated to each other
        [user_mobile_number] => 9929933345
     )
)
另外,有没有人能告诉我,有没有什么方法可以触发SQL查询一次,并获得所需的数组,该数组将包含来自数组的所有ID的详细信息
$insert\u users

这是否有帮助:

SELECT DISTINCT ud.user_mobile_number,
CONCAT(u.user_first_name,' ',u.user_last_name) AS user_full_name 
FROM OCN.users_groups_subscribe ugs
JOIN OCN.users_details ud ON ud.user_id=ugs.subscribe_user_id
JOIN OCN.users u ON u.user_id=ugs.subscribe_user_id
WHERE ugs.subscribe_user_id ='".$value."'";
而不是做

foreach($insert_users as $key => $value ) {


    $sql  = " SELECT DISTINCT ud.user_mobile_number, u.user_first_name, u.user_last_name FROM OCN.users_groups_subscribe ugs JOIN OCN.users_details ud ON ud.user_id=ugs.subscribe_user_id JOIN OCN.users u ON u.user_id=ugs.subscribe_user_id WHERE ugs.subscribe_user_id ='".$value."'";

    $this->mDb->Query( $sql);
    $students_data = $this->mDb->FetchArray();                          
}


现在,您应该在一个查询中获得所需的所有结果

是的,它可以将两个字符串连接起来,但是名字和姓氏之间应该有一个空格。它应该如何得到insert?现在看..空格将被插入。而且它只是关于连接部分。获取所需数组的单个查询如何?你知道吗?我不明白你在这里所说的单一查询是什么意思?这不是一个查询吗?是的,这是一个查询。但每次foreach迭代都会触发它。我想减少这个。有没有办法减少这种情况?明白我的意思了吗?