Php 如何在数据库中搜索数组的位置

Php 如何在数据库中搜索数组的位置,php,mysql,android-sql,Php,Mysql,Android Sql,我得到了这个mysql查询: $Nusers = mysql_query("SELECT user_id FROM dotp_user_task_type WHERE user_task_types_id = '$select1'"); $row = mysql_fetch_array($result); 它需要所有用户id,这些用户id具有特定id的任务。因此,现在我需要获取他们的姓名,但我不知道当$row是数字数组时如何使用WHERE $Nusers = mysql_query("SELE

我得到了这个
mysql
查询:

$Nusers = mysql_query("SELECT user_id FROM dotp_user_task_type WHERE user_task_types_id = '$select1'");
$row = mysql_fetch_array($result);
它需要所有用户id,这些用户id具有特定id的任务。因此,现在我需要获取他们的姓名,但我不知道当$row是数字数组时如何使用WHERE

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

请提供帮助………

为什么不将这两个查询合并为

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' );
(或)使用简单的
连接

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';

为什么不将这两个查询组合起来

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' );
(或)使用简单的
连接

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';
中使用
-

" ....WHERE user_id IN (" .implode(",", $row). ")"
中使用
-

" ....WHERE user_id IN (" .implode(",", $row). ")"
试试这个

使用
中的
在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)");
试试这个

使用
中的
在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)");

你的建议是最好的,但我如何才能让它只写一次id,因为它写的是
([0]=>38[user\u id]=>38)
,而且看起来像38,38它会写两次?当我去接Array的时候它工作得很好,我还需要一件事。是否可以为[user\u id]=>contatct\u first\u name contact\u last\u name提供用户id?因为现在它的数量在增加,让我们来看看。我已经回答了这个问题。检查一下,让我知道你的建议是最好的,但是我如何才能让它只写一次id,因为它写
([0]=>38[user\u id]=>38)
,它看起来像38,38它看起来会两次?当我去接Array的时候它工作得很好,我还需要一件事。是否可以为[user\u id]=>contatct\u first\u name contact\u last\u name提供用户id?因为现在它只是越来越多的数字让我们来看看。我已经回答了这个问题。检查一下,让我知道