0

我的数据库中有两条记录,我想将它们打印出来。所以我写了这个:

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




}
?>

而不是两条记录(成员ID):

1 2

它会打印两次第一条记录(成员 ID):

1 1

有人可以帮助我吗?

4

1 回答 1

1

这两个查询之间不相关,因此您将有两个结果,因为您的第一个查询找到两个匹配行,因此它循环两次,而从第二个查询您将始终获得相同的值,因为它每个循环执行一次。我建议删除第二个查询并直接打印第一个查询的结果,以便您打印两个不同的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 的子句member_id = '$row['member_id']

然后我想记住您mysql_不推荐使用功能,因此我建议您切换到mysqliPDO

于 2013-05-22T11:58:19.363 回答