首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >While循环只执行一次

While循环只执行一次
EN

Stack Overflow用户
提问于 2012-03-17 04:04:21
回答 3查看 3.4K关注 0票数 1

我有一个表单,在文本框中显示联系人电子邮件地址,并下拉选择这些相应电子邮件的标题。

TitleSelect1 Email1 TitleSelect2 Email2 ....

电子邮件有一个title_id集,选择列表选择现有的标题。这适用于第一个联系人,但其余联系人将只显示电子邮件地址,标题下拉列表为空。

代码语言:javascript
复制
<?php

while ($row2 = mysql_fetch_array($Contact_list)) {
    ?>
<tr>
    <td align="right"><select id="Contacts_title" name="Contacts_title[]">
        <?

        while ($row3 = mysql_fetch_array($title_list)) { //put the contact titles into an array

            if ($row3['title_id'] == $row2['title_id']) {
                ?>
                <option value="<? echo $row3['title_id'] ?>" selected="true"><? echo $row3['title'] ?>!</option>';
                <?
            }

            else {
                ?>
                <option value="<? echo $row3['title_id'] ?>"><? echo $row3['title'] ?> </option>';
                <?
            }
        }

        ?>
    </select>
    </td>
    <td align="left"><input type="text" id="Contacts" name="Contacts[]" value="<? echo $row2['email'] ?>"/></td>
</tr>
<?
    $count++;
} 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-17 04:08:39

mysql_fetch_array()只遍历给定查询的结果一次。由于您不是在联系人列表循环中每次都执行title_list查询,因此当您在第一次迭代之后开始每次迭代时,它仍然位于查询结果的末尾。

您需要做的是从title_list查询中获得所有结果,将它们放入一个数组中,并对每个联系人进行迭代。

下面是一个关于如何做到这一点的通用示例(去掉了无关的部分):

代码语言:javascript
复制
$contact_list = //some query
$title_list = //some query

$titles = array();
while($title_ar = mysql_fetch_array($title_list)) {
  $titles[] = $title_ar;
}

while($contact_ar = mysql_fetch_array($contact_list)) {
    // some stuff
    foreach($titles as $title) {
        // do something with each title
    }
}
票数 9
EN

Stack Overflow用户

发布于 2012-03-17 04:10:01

您应该将行放在一个变量中,并在while循环之后回显。

票数 0
EN

Stack Overflow用户

发布于 2012-03-17 04:10:33

一旦内部while循环完全执行一次,您就不会再在该mysql_fetch_array调用中获得更多的值。因为游标到达了行尾。

您应该将内部while循环的结果存储到一个php数组中,然后每次在内部while循环中迭代此数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9743805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档