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?因为现在它只是越来越多的数字让我们来看看。我已经回答了这个问题。检查一下,让我知道