所以我有以下问题:
$resclients=$mysqli->query("SELECT id,client_name FROM clients WHERE id IN ($result[])");
我想知道,在for或foreach循环中执行上述查询是不好的做法,是否会损害MySQL服务器?
或者, LEFT JOINS 或 INNER JOINS 或 RIGHT JOINS 更好吗?
忘记添加,$ result []实际上是一个二维数组。
显示你的数组:
Array
(
[0] => Array
(
[id] => 7
[resclients] => 6,7,8,9,10,11,12,13,14,15
)
[1] => Array
(
[id] => 5
[resclients] => 5
)
[2] => Array
(
[id] => 4
[resclients] => 4
)
)
只是其中的一小部分。
答案 0 :(得分:1)
您可以将其用作:
// a testing multidimensional array
$testArr = array(
array(
'one'=>1,
'two'=>2,
'three'=>3)
);
$yourIds = array();
foreach ($testArr as $value) {
foreach ($value as $finalVal) {
$yourIds[] = $finalVal[];
}
}
$implodedIds = implode(",",$yourIds);
echo "SELECT id,client_name FROM clients WHERE id IN ($implodedIds)";
<强>结果:强>
SELECT id,client_name FROM clients WHERE id IN (1,2,3)
请注意:这是基本的想法,如何在循环中不使用查询的情况下使用。