2017-05-19 135 views
0

我正在使用PDO为了从我的数据库中选择一些值。
对于$ teachArray的每次迭代,我将选中的数组存储到我的$ language_id变量中。
然后,我摆脱了我的$ language_id中的任何空数组,并将其分配给我的$ NoEmptyArray_language_id
。但是,我仅将$ language_id中的最后一个数组存储在$ NoEmptyArray_language_id中。将数组添加到php变量中

我想将$ language_id中的每个数组连接到$ NoEmptyArray_language_id。

我不能使用$NoEmptyArray_language_id .= $language_id;,因为它会给我一个错误:数组到字符串转换

这里是我的简单查询。

$sqlFindId = "SELECT language_id 
       FROM language_skill 
       WHERE person_id = :person_id AND language_learning = :language_learning AND language_id = :language_id"; 

      $NoEmptyArray_language_id = ""; 
       foreach ($teachArray as $dataTeach) 
       { 
        $query = $handler->prepare($sqlFindUser); 
        $query->bindValue(':person_id', $_SESSION['person_id']); 
        $query->bindValue(':language_learning', 1); 
        $query->bindValue(':language_id', $dataTeach); 
        $query->execute(); 
        $language_id = $query->fetchAll(PDO::FETCH_COLUMN, 0); 
        if (count($language_id) != 0) { 
         $NoEmptyArray_language_id .= $language_id; 

        } 

       } 
       print_r($NoEmptyArray_language_id); 
+0

听起来令人困惑。也许告诉我们你的最终目标是什么。 – CodeGodie

+0

我只想将我的$ language_id中的值添加到$ NoEmptyArray_language_id中 – Viteazul

+0

这听起来像是一个'JOIN'的候选人,因此您不需要执行“N + 1”加载,每次通过某个循环就会将查询砰一声。 – tadman

回答

2

你必须定义$NoEmptyArray_language_id = array();

还与$NoEmptyArray_language_id[] = $language_id;

现在,你必须在$ NoEmptyArray_language_id值阵列更改代码。

如果你想获得字符串使用implode函数将这个数组转换为字符串。

+0

谢谢你的作品! – Viteazul