首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >While循环中的while循环问题

While循环中的while循环问题
EN

Stack Overflow用户
提问于 2011-02-02 05:21:49
回答 2查看 393关注 0票数 0

好的,我通过php将作业的数据从SQL Server2008拉到一个html表中。每个作业可以/确实有多个任务。我使用了1个while循环(这里称为“外部”while)和另一个while循环(这里称为“内部”while )来显示任务(这里称为“内部”while )来显示每个作业,我发现它退出了“内部”while循环,但不会触发下一轮“外部”while循环。如果我在一切正常的时候注释掉它的内部。

代码语言:javascript
复制
$sql = "SELECT * FROM [euroJobSrv].[dbo].[Job],[euroJobSrv].[dbo].[Site]";
$result = dbQuery($sql);
 while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)){
     $sql1 = "SELECT Task_Type FROM [euroJobSrv].[dbo].[JobTask] WHERE Task_Job_ID='".$row['Job_ID']."'";
     $result1 = dbQuery($sql1);
     $Site_Address = str_replace(',', ', <br>', $row['Site_Address']);
     $days = $row['Job_Finish_Date'] - $row['Job_Start_Date'] + '1';
    echo "  <tr>
                <th width=50> Job ID: </th>
                <th width=50> Site Address:</th>
                <th width=50> Start Date: </th>
                <th width=50> Finish Date: </th>
                <th width=50> Days: </th>
                <th width=50> Overnight: </th>
                <th width=50> Tasks: </th>
            </tr>";
    echo "  <tr>
                <td width=50>".$row['Job_ID']."</td>
                <td width=50>".$Site_Address."</td>
                <td width=50>".$row['Job_Start_Date']."</td>
                <td width=50>".$row['Job_Finish_Date']."</td>
                <td width=50>".$days."</td>
                <td width=50>".$row['Job_Overnight']."</td>
                <td width=50><ul>";
                                    while ($row1 = sqlsrv_fetch_array($result1, SQLSRV_FETCH_ASSOC)){
                                            echo "<li>".$row1['Task_Type']."</li>";}
    echo"       <ul></td>
                <td><a href='include/job/modify.php?j=".$row['Job_ID']."'>modify</a></td>
                </tr>";
                 }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-02 05:32:31

我不相信您可以在PHP中使用sql服务器驱动程序的同一连接上有多个打开的结果集。

这里有几个选项。

  1. 使用两个不同的数据库连接,一个用于外部查询,另一个用于内部查询。
  2. 只执行一个查询,联接两个表并按Job_ID排序,然后使用代码中的逻辑来确定何时从一个Job_ID更改为另一个。

选项2可能会提供最佳性能,因为它避免了进行多次查询的需要。

票数 2
EN

Stack Overflow用户

发布于 2011-02-02 06:41:38

您可能希望了解SQL Server2005中开始的多个活动结果集(MARS)功能。你可以在这里找到信息:

http://msdn.microsoft.com/en-us/library/h32h3abf(v=VS.90).aspx

我没有尝试过,但听起来它解决了你想要做的事情。

我不确定它是否能在PHP中工作,但它值得一试。

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

https://stackoverflow.com/questions/4868076

复制
相关文章

相似问题

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