【问题标题】:adding multiple do statements on a page using php and mysql使用 php 和 mysql 在页面上添加多个 do 语句
【发布时间】:2013-06-25 18:33:20
【问题描述】:

好的,所以我在以前的帖子中没有看到类似的内容,所以如果在重新发布之前已经涵盖了。

我正在尝试在同一页面中添加第二个 do..while 语句,但是当我这样做时,它似乎会拖下页面。如果我只有一个语句,它加载很好,但是我输入第二个语句的那一刻,加载页面需要永远。我需要添加总共 9 个 do..while 语句,这很可能会在此时杀死页面。我不确定它为什么会这样做?

我使用的代码如下

<p><?php
    do {
    $row_myContacts = mysql_fetch_assoc($myContacts);
    if ($row_myContacts['staffID'] != "81"){                                
    }
    else {
     echo $row_myContacts['firstName'] . " " . $row_myContacts['lastName'];?></p>
                  <p class="staff_title_national"><?php echo $row_nmyContacts['titleName'];?></p>
                  <br />
                  <li><?php echo $row_myContacts['address1'] 
. " " . $row_myContacts['address2'] ;?></li>
                  <li><?php echo $row_myContacts['cityName'] 
. ", " . $row_myContacts['state_abreviation'] . " " 
. $row_myContacts['zipCode'];?></li>
                  <br />
                  <li>Office: <?php echo format_phone($new_office_phone); ?></li>
                  <li>Fax: <?php echo format_phone($new_fax_phone); ?></li>
                  <br />
                  <br />
                  <li>E-Mail: 
<a href="<?php echo $row_myContacts['email'];?>"><?php echo $row_myContacts['email'];?></a></li>
                  <br />
           <?php }
    } while ($row_myContacts['staffID'] != '81')?>

我已尝试对其进行测试,以便人员 ID == 到我需要的数字,但它不输出任何内容。我认为应该是这样,但由于某种原因它不起作用。是的,我移动了那个变体中的东西,所以 else 是空的,而 if 里面有信息。

该页面在第 1 部分下包含 4 个联系人部分,其中一个部分有 2 个姓名(相同的地址信息),第 2 部分有 3 个不同的姓名信息,第 3 部分和第 4 部分各有 2 个不同的信息。如果有帮助,我什至在我的数据库中创建了 2 个新表,它们引用了 4 个部分。我知道我的 sql 语句是正确的,它会提取所有 9 个联系人及其相应的信息。

/在下面编辑/

所以我也以这种方式尝试了代码。我确实让它加载第一个,但是当我添加一个循环部分时,它什么也没显示。我认为这是因为我告诉循环在它停止的同一点访问数据库,所以它不会在循环上重新开始。

<?php
            for ($x=$totalRows_myContacts; $x>=1; $x--){

                if ($row_myContacts['staffID'] == '81') {
                echo $row_myContacts['firstName'] . " " . $row_myContacts['lastName'];?></p>
                  <p class="staff_title"><?php echo $row_myContacts['titleName'];?></p>
                  <br />
                  <li><?php echo $row_myContacts['address1'] . " " . $row_myContacts['address2'] ;?></li>
                  <li><?php echo $row_myContacts['cityName'] . ", " . $row_myContacts['state_abreviation'] . " " . $row_myContacts['zipCode'];?></li>
                  <br />
                  <li>Office: <?php echo format_phone($new_office_phone); ?></li>
                  <li>Fax: <?php echo format_phone($new_fax_phone); ?></li>
                  <br />
                  <br />
                  <li class="emailTealGrey">E-Mail: <a href="<?php echo $row_myContacts['email'];?>"><?php echo $row_myContacts['email'];?></a></li>
                  <br />   

            <?php }$row_myContacts = mysql_fetch_assoc($Contacts);  
            }?>

所以不知道如何告诉数据库再次访问自己并从顶部开始查询我想这是我需要做的。任何想法如何告诉它这样做?

【问题讨论】:

    标签: php html mysql


    【解决方案1】:

    如果staffID=81 没有行会发生什么 把代码改成这样,

    .....
    do {
        $row_myContacts = mysql_fetch_assoc($myContacts);
        if ($row_myContacts == false){
            break;
        }
    .....
    

    【讨论】:

    • 好的,这样就解决了我的问题,但现在它找不到我需要的员工 81 或我放在那里的任何其他员工。
    • 检查您的查询是否返回staffID = 81。还要检查返回值中是否有前导/尾随空格。
    • 我得到了 9 名员工,包括 81 名员工。就像我在上面添加的 for 循环一样,它将显示第一个查询,但是当我添加第二个查询时,它显示为空。你知道如何让查询从头开始,而不是从最后一个停止的地方开始吗?
    • 我不知道你为什么要多次遍历同一个结果集,但这里是解决方案:检查这个 stackoverflow 问题Multiple PHP WHILE loops using the same query
    • 啊,谢谢,是的,它回答了我的问题。原因是因为我有一组没有特定顺序的联系人,我需要找到他们的员工信息,以便我可以将其显示在页面的不同部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 2016-07-22
    • 1970-01-01
    • 2013-04-18
    • 2021-03-26
    相关资源
    最近更新 更多