PHP while循环未正确执行
问题描述:
我有三个病区A,B,C在我的数据库和员工(3病房楼A,4 B和1对C)和下面的脚本打印出所有的病房正确,并打印出3名员工在病房A工作,但没有更多(我:E它只对比病房A,而不是其他2)PHP 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>");
}
}
}
答
遍历它用完一个结果,因此不再可迭代后。外环之前在一个阵列存储它:
$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
告诉我们您的查询... – SolidSnake 2013-05-02 19:06:47
没有为mysql_ *函数,它们被正式弃用,没有更多的支持不再保持,并会在将来被移除。您应该使用PDO或MySQLi更新您的代码,以确保您的项目未来的功能。 – Schleis 2013-05-02 19:09:33
只是迂腐,但'echo'不是一个函数,而是一个语言结构,就像'return'一样。这里没有必要使用括号,它们仅用于在与语言结构组合使用时否决运算符优先级 – 2013-05-02 19:21:20