0

DB に 2 つのレコードがあり、それらを印刷したいと考えています。だから私はこれを書いた:

<?php
$resDB = mysql_connect("localhost", "root", "");
mysql_select_db("xe", $resDB);


 $aco = mysql_query("SELECT * FROM members WHERE member_id IN (SELECT member_id FROM      pfields_content WHERE TRIM(field_12) IS NOT NULL)  ");
while ($row = mysql_fetch_array($aco))
{

$query1 = mysql_query("SELECT member_id FROM pfields_content WHERE TRIM(field_12) IS NOT NULL LIMIT 1");
$memberID = mysql_fetch_row($query1);

echo $memberID[0];
echo '<br>';




}
?>

そして、2 つのレコード (メンバー ID) の代わりに:

1 2

最初のレコード (メンバー ID) を 2 回出力します。

1 1

誰か助けてくれませんか?

4

1 に答える 1

1

2 つのクエリはそれらの間で相関していないため、最初のクエリは 2 つの一致する行を見つけるため、2 つの結果が得られます。2 回ループしますが、2 番目のクエリからはループごとに 1 回実行されるため、常に同じ値が得られます。2 番目のクエリを削除し、最初のクエリの結果を直接出力して、2 つの異なるものを出力することをお勧めします。id

$aco = mysql_query("SELECT * FROM members WHERE member_id IN (SELECT member_id FROM      pfields_content WHERE TRIM(field_12) IS NOT NULL)  ");
while ($row = mysql_fetch_array($aco))
{
    echo $row['member_id']; // or whatever your column name is
}

それ以外の場合は、最初のクエリから選択したメンバー ID を使用し、WHERE結果を only に制限する句を使用して 2 番目のクエリで使用できますmember_id = '$row['member_id']

mysql_次に、関数が非推奨であることを覚えておきたいので、mysqliまたはに切り替えることをお勧めしますPDO

于 2013-05-22T11:58:19.363 に答える