第二个while循环没有运行.为什么?

Second while loop not running. Why?(第二个while循环没有运行.为什么?)
本文介绍了第二个while循环没有运行.为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我有两个 while 循环一个接一个地运行(不是在彼此内部) - 我已经稍微简化了代码,因此下面只列出了它的重要部分.当我比较两个回显查询时出现问题,因为第二个 while 循环显然根本没有运行.

I have two while loops running one after the other (not inside of each other) - I've simplified the code a bit so that only the important parts of it are listed below. The problem arises when I compare the two echoed queries because the 2nd while loop apparently isn't running at all.

我在某处读到有人通过对第二个循环使用 for 循环解决了这个问题,但我想深入了解为什么我的代码中没有运行第二个 while 循环.

I read somewhere that someone got around the problem by using a for loop for the second one but I want to get down to why exactly the second while loop is not running in my code.

$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;

推荐答案

MySQL 扩展跟踪每个结果的内部行指针.它在每次调用 mysql_fetch_assoc() 后递增该指针,并且允许您使用 while 循环而不指定何时停止.如果您打算多次遍历结果集,则需要将此内部行指针重置回 0.

The MySQL extension keeps track of an internal row pointer for each result. It increments this pointer after each call to mysql_fetch_assoc(), and is what allows you to use a while loop without specifying when to stop. If you intend on looping through a result set more than once, you need to reset this internal row pointer back to 0.

为此,您将mysql_data_seek() 在第一个循环之后:

To do this, you would mysql_data_seek() after the first loop:

while ($row = mysql_fetch_assoc($result_work_id)) {
    $query_work_title .= "OR '$work_id' ";
}
mysql_data_seek($result_work_id, 0);

这篇关于第二个while循环没有运行.为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)