2013-05-02 108 views
0

我有三個病區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

回答

1

遍歷它用完一個結果,因此不再可迭代後。外環之前在一個陣列存儲它:

$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