Как искать в базе данных, где находится массив

У меня есть это mysqlзапрос:

$Nusers = mysql_query("SELECT user_id FROM dotp_user_task_type WHERE user_task_types_id = '$select1'");
$row = mysql_fetch_array($result);

Это берет все идентификаторы пользователей, у которых есть задача с определенным идентификатором. Итак, теперь мне нужно взять их имя и фамилию, но я не знаю, как использовать ГДЕ, когда $ row это массив с числами.

$Nusers = mysql_query("SELECT CONCAT(contact_first_name, ' ', contact_last_name) FROM dotp_user_contacts WHERE user_id = '$row'");

Помогите, пожалуйста………….

0

Решение

Попробуй это..

С помощью IN искать значение массива в MySQL

$datauserid=array();

$Nusers = mysql_query("SELECT user_id FROM dotp_user_task_type WHERE user_task_types_id = '$select1'");

while($row = mysql_fetch_array($Nusers))
{
$datauserid[]=$row['user_id'];
}
$userid=implode(",",$datauserid);

$Nusers = mysql_query("SELECT CONCAT(contact_first_name, ' ', contact_last_name) FROM dotp_user_contacts WHERE user_id IN ($userid)");
2

Другие решения

Почему бы вам не объединить оба запроса, как

SELECT CONCAT(contact_first_name, ' ', contact_last_name) as fullname
FROM dotp_user_contacts
WHERE user_id  IN ( SELECT distinct user_id FROM dotp_user_task_type
WHERE user_task_types_id = '$select1' );

(ИЛИ) Используя простой JOIN лайк

SELECT CONCAT(duc.contact_first_name, ' ', duc.contact_last_name) as fullname
FROM dotp_user_contacts duc
JOIN  dotp_user_task_type dtt ON duc.user_id = dtt.user_id
WHERE dtt.user_task_types_id = '$select1';
2

использование IN

" ....WHERE user_id IN (" .implode(",", $row). ")"
2
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector