Sim*_*Suh 2 php loops while-loop
我有两个while循环一个接一个地运行(不在彼此内部) - 我已经简化了一些代码,所以下面只列出了它的重要部分.当我比较两个回显的查询时出现问题,因为第二个while循环显然根本没有运行.
我读到有人通过使用for循环来解决第二个问题,但我想知道为什么第二个while循环没有在我的代码中运行.
$query_work_title = "SELECT title FROM works WHERE ";
while ($row = mysql_fetch_assoc($result_work_id)) {
$query_work_title .= "OR '$work_id' ";
}
echo $query_work_title;
echo '<br />';
$result_work_title = mysql_query($query_work_title) or
die(mysql_error($cn));
// retrieve the authors for each work in the following query
$query_author_id = "SELECT author_id FROM works_and_authors WHERE ";
while ($row = mysql_fetch_assoc($result_work_id)) {
$query_author_id .= "work_id = 'hello' ";
}
echo $query_author_id;
Run Code Online (Sandbox Code Playgroud)
MySQL扩展跟踪每个结果的内部行指针.它在每次调用mysql_fetch_assoc()之后递增此指针,并且允许您使用while循环而不指定何时停止.如果您打算多次循环遍历结果集,则需要将此内部行指针重置为0.
要做到这一点,你会在第一个循环之后使用mysql_data_seek():
while ($row = mysql_fetch_assoc($result_work_id)) {
$query_work_title .= "OR '$work_id' ";
}
mysql_data_seek($result_work_id, 0);
Run Code Online (Sandbox Code Playgroud)