【发布时间】:2013-05-22 11:49:39
【问题描述】:
我的数据库中有两条记录,我想将它们打印出来。 所以我写了这个:
<?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
有人可以帮帮我吗?
【问题讨论】:
-
您运行完全相同的查询两次并打印相同的值。 (除了使用其结果数作为循环和运行内部查询的次数外,您永远不会对外部查询的结果做任何事情。
-
而循环内的数据库查询在性能方面通常是一个非常糟糕的主意。熟悉 JOIN 并了解如何通过一次查询获得所需的所有数据。 (具体如何,取决于您的数据模型。)
标签: mysql loops while-loop