MYSQL 为什么 While 循环返回第一条记录两次?

标签 mysql loops while-loop

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

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

有人可以帮助我吗?

最佳答案

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

那么我想记住 mysql_ 函数已被弃用,所以我建议您切换到 mysqliPDO

关于MYSQL 为什么 While 循环返回第一条记录两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16690970/

相关文章:

php - 使用 PHP 访问类函数时出现错误

c# - 围绕这个 C# MySQL 数据访问代码进行事务处理的最佳方法是什么(我需要什么)?

image - 帧完成时 CSS3 动画闪烁

java - 带星号的矩形 Java

linux - 遍历空字符串

PHP 查询在使用两个 WHERE 子句限制查询时显示没有日期的行

mysql - 当我将 Vapor 与 Mysql 一起使用时,我的数据库不会自动生成表

scripting - PHP脚本任意停止运行没有错误

Python Selenium Do-While 循环

php - 重新启动 While 循环