Php 无法在mysql中选择带有“的项目”;其中s_id在($array)中;

Php 无法在mysql中选择带有“的项目”;其中s_id在($array)中;,php,mysql,arrays,select,where,Php,Mysql,Arrays,Select,Where,这是我的问题,我有两个表,一个是连接(一列-团队id,另一列-人员id),我从一个确切的团队中找到所有人员id(这里是“t1”),并将其放入数组中,这里一切正常 $id1 = mysql_query("SELECT id FROM connections WHERE team='t1'"); $id11 = array(); while(($row = mysql_fetch_assoc($id1))) { $id11[] = $row; } echo ""; print_r($id

这是我的问题,我有两个表,一个是连接(一列-团队id,另一列-人员id),我从一个确切的团队中找到所有人员id(这里是“t1”),并将其放入数组中,这里一切正常

$id1 = mysql_query("SELECT id FROM connections WHERE team='t1'");
$id11 = array();
while(($row =  mysql_fetch_assoc($id1))) {
    $id11[] = $row;
}

echo "";
print_r($id11);
echo "";
在这里一切正常之前,我在打印中看到了我想要看到的数组项。但从这里[粪便物质]发生了。我可以从“persons”表中选择人名,该表的id来自上一个数组($id11)。最后我得到一个空数组

$kom1 = mysql_query("SELECT name FROM persons WHERE s_id IN('".join("','", $id11)."')");


//$kom1 = mysql_query("SELECT name FROM persons WHERE s_id IN(".implode(',',$id11).')'); //this one doesnt work too
$kom11 = array();
while(($row1 =  mysql_fetch_assoc($kom1))) {
$kom11[] = $row1;
}

echo "";
print_r($kom11);
echo "";
尝试了所有方法,请帮助我,谢谢。

尝试以下方法:

$id11[] = $row['id'];
试试这个:

$id11[] = $row['id'];

在第二个查询中直接使用子查询:

SELECT * FROM blah WHERE boing IN (SELECT id FROM blah2 WHERE team=1337)

应该在每个不太花哨的数据库中工作

在第二个查询中直接使用子查询:

SELECT * FROM blah WHERE boing IN (SELECT id FROM blah2 WHERE team=1337)

应该在每一个不那么花哨的数据库中工作,我的问题是:为什么一开始就用两个查询来做这件事

您可以简单地使用:

select p.name from persons p, connections c
where c.team = 't1'
and c.id = p.s_id

(或等效的显式联接)。

我的问题是:为什么一开始要用两个查询来执行此操作

您可以简单地使用:

select p.name from persons p, connections c
where c.team = 't1'
and c.id = p.s_id


(或等效的显式联接)。

当您回送SQL时,它是什么样子的?当您直接在数据库中运行它时,它工作吗?保持语言干净。这里绝对没有理由使用这种措辞。另外,您没有错误处理-您确定查询执行正确吗<代码>$row1=mysql_查询(…)或死亡(mysql_错误())。也要修改变量名
$kom1
$kom11
将在以后导致严重的混乱。当您回传出来时,SQL是什么样子的?当您直接在数据库中运行它时,它工作吗?保持语言干净。这里绝对没有理由使用这种措辞。另外,您没有错误处理-您确定查询执行正确吗<代码>$row1=mysql_查询(…)或死亡(mysql_错误())。也要修改变量名
$kom1
$kom11
稍后会导致严重的混淆。鉴于OP甚至没有在查询中选择
id
字段,这完全是错误的。@MarcB-这是正确的;他指的是连接中代码选择id的第四行,其中team='t1-for the blind man@Mark BYou是对的。我道歉。我正在看第二段代码。
从persons P,connections c中选择P.name,其中P.s_id=c.id,c.team='t1'
鉴于OP甚至没有在查询中选择
id
字段,这完全是错误的。@MarcB-这是正确的;他指的是连接中代码选择id的第四行,其中team='t1-for the blind man@Mark BYou是对的。我道歉。我正在看第二段代码。
从persons P,connections c中选择P.name,其中P.s_id=c.id和c.team='t1'
使用隐式语法击中头部,减去。击中头部,减去使用隐式语法。谢谢你,你的方式和解释是最好的!谢谢你,你的方式和解释是最好的!