Я делаю запрос с использованием PHP PDO к базе данных, в которой я ищу всех пользователей, в которых количество внешних ключей в таблице совпадает с массивом, выведенным предыдущим объектом PDO.
<code>$in = "";
foreach ($parent_ids as $i => $item)
{
$key = ":".$i;
$in .= "$key,";
$in_params[$key] = $item; // collecting values into key-value array
}
$in = rtrim($in,",");
$sqlRequestParentInfo = "SELECT * FROM academy_user WHERE user_id IN ($in)";
$stmt = $dbConn->prepare($sqlRequestParentInfo);
var_dump($stmt);
$stmt->execute($in_params);
$parent_info = $stmt->fetchObject();
/*echo print_r($ids);
echo json_encode($parent_ids);*/
echo "<pre>";
echo "<br> PARENT INFO <br>";
var_dump($parent_info);
$parent_info = json_encode($parent_info);
echo $parent_info;
echo "
";
Массив parent_ids
- это массив ключей, отформатированный следующим образом: parent3_id_fk, parent4_id_fk и т. Д.
И значение каждого из этих ключей равно 3Цифровое число, представляющее внешний ключ «родителя», назначенного «ученику» в таблице.
Используя эти внешние ключи, я запрашиваю academy_user
, чтобы найти информацию об этих родителях. Поэтому я использую WHERE user_id IN (values)
Оператор SQL. Кажется, он работает нормально, за исключением того, что для пользователя '426' возвращается только одна запись, хотя в этой таблице также есть внешний ключ пользователя '427.
Это var_dump of parent_info
:
object(stdClass)#2 (11) {
["user_id"]=>
string(3) "426"
["user_email"]=>
string(11) "a@gmail.com"
["password"]=>
string(60) "$2y$10$V4sPIs3fdJ7F49cNtl8eyufuLGu9leTUH4Fl5VUUAcgq4zB/NzUn6"
["f_name"]=>
string(1) "a"
["l_name"]=>
string(1) "a"
["address_id_fk"]=>
NULL
["access_lvl"]=>
string(1) "3"
["date_created"]=>
string(19) "2019-03-28 13:42:15"
["date_gdpr_remove"]=>
NULL
["approved"]=>
string(1) "1"
["requested_access_fk"]=>
string(1) "3"
}
Это просто пример данных. Любые идеи?
РЕДАКТИРОВАТЬ: Это то, как выглядит оператор SQL, прежде чем параметры вводятся в затем выполняется:
SELECT * FROM academy_user WHERE user_id IN (:parent1_id_fk,:parent2_id_fk,:parent3_id_fk,:parent4_id_fk,:parent5_id_fk,:parent6_id_fk,:parent7_id_fk,:parent8_id_fk,:parent9_id_fk)