0

ここに私の問題があります.2つのテーブルがあり、1つは接続です(1つの列-チーム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 "";

ここまではすべて問題ありません。print_r には、見たい配列の項目が表示されます。でもここから【糞便】が発生します。前の配列 ($id11) の ID を持つ「persons」テーブルから人物名を選択したいと思います。最後に空の配列を取得します。

$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 "";

すべてを試しました、助けてください、ありがとう。

4

3 に答える 3

1

これを試して:

$id11[] = $row['id'];
于 2012-10-25T19:45:37.340 に答える
1

サブクエリを 2 番目のクエリで直接使用します。

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

それほど派手ではないすべてのDBで動作するはずです

于 2012-10-25T19:47:40.850 に答える
1

私の質問は、なぜ最初に 2 つのクエリでこれを行うのですか?

以下を簡単に使用できます。

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

(または同等の明示的な結合)。

于 2012-10-25T19:49:21.183 に答える