PHP while循环未正确执行

问题描述:

我有三个病区A,B,C在我的数据库和员工(3病房楼A,4 B和1对C)和下面的脚本打印出所有的病房正确,并打印出3名员工在病房A工作,但没有更多(我:E它只对比病房A,而不是其他2)See ImagePHP while循环未正确执行

你可以看到任何明显的错误,执行导致这个?我是新来的PHP所以这就是为什么我不太懂语法=)

while ($row = mysql_fetch_array($wardNames)) { 

     echo("<tr><td><a href=\"javascript:displayWard('" . $row['Name'] ."')\"> 
     <div class='wardHeader'><div class='plus'></div><div class='wardName'><b>" . $row['Name'] . " </b></div> 
     </div> 
     </a></td></tr>"); 

     while ($employeerow = mysql_fetch_array($Employees)) {//Only prints out employees on ward A and not B or C. Why? 
      if($employeerow['Ward']==$row['Name']){ 
       echo("<tr><td>" . $employeerow['Name'] . "</td></tr>"); 
      } 
     } 
    } 
+1

告诉我们您的查询... – SolidSnake 2013-05-02 19:06:47

+1

没有为mysql_ *函数,它们被正式弃用,没有更多的支持不再保持,并会在将来被移除。您应该使用PDO或MySQLi更新您的代码,以确保您的项目未来的功能。 – Schleis 2013-05-02 19:09:33

+0

只是迂腐,但'echo'不是一个函数,而是一个语言结构,就像'return'一样。这里没有必要使用括号,它们仅用于在与语言结构组合使用时否决运算符优先级 – 2013-05-02 19:21:20

遍历它用完一个结果,因此不再可迭代后。外环之前在一个阵列存储它:

$all_employees = array(); 
while($row = mysql_fetch_array($Employees)) { 
    $all_employees[] = $row; 
} 

while ($row = mysql_fetch_array($wardNames)) { 

    echo("<tr><td><a href=\"javascript:displayWard('" . $row['Name'] ."')\"> 
      <div class='wardHeader'><div class='plus'></div><div class='wardName'><b>" . $row['Name'] . " </b></div> 
      </div> 
      </a></td></tr>"); 

    foreach($all_employees as $employeerow) 
     if($employeerow['Ward']==$row['Name']){ 
      echo("<tr><td>" . $employeerow['Name'] . "</td></tr>"); 
     } 
    } 
} 
+0

非常感谢你这么=) – anders 2013-05-02 19:51:17