所以我有一个页面,它是填写表格的确认页面。我检查了我的sql语句,它工作正常。我遇到的问题是让php循环输出结果而不转储剩下的查询。
所以我的代码是这样的:
$mysql-statement......
$total_rows... etc.
$i = $total_rows;
if($i > 1) {
echo "i = ". $i. "<br />";
for($x=1; $x< ($i+1); $x++){
echo "This is from the for loop Office location is " .$row_rs_myquery['Office_Name'] ."<br />";
mysql_fetch_assoc($rs_myquery);
}
}?>
现在上面的一些用于测试目的,其中一些是我想要的,主要是我只是希望它输出与此人关联的多个Office名称。基本上我只得到第一个办公室名称,它没有整理到与此人相关的下一个办公地点。它只是重复相同的办公地点,我可能会添加正确的次数。
我还尝试过do while循环,由于某种原因打破了页面的其余部分。我只是遍历这一部分,但页面的其余部分显示人员联系信息在数据库中与他们相关的任何其他内容。出于理智的缘故,这是我使用的do while声明。我让它在不同的页面上运行,这个设置在那里工作,所以不确定为什么它不能在这个页面上工作。
do{
echo "This is from the do while loop Office location is " .$row_rs_myquery['Office_Name'] ."<br />";
}while($row_rs_myquery = mysql_fetch_assoc($rs_myquery));
我正在工作的当前人员名下有3个办公地点。所以它应该输出3行代码:
This is from the for loop Office location is St. Paul
This is from the for loop Office location is New York
This is from the for loop Office location is Los Angeles
但我得到的是如果我运行for循环
This is from the for loop Office location is St. Paul
This is from the for loop Office location is St. Paul
This is from the for loop Office location is St. Paul
但我得到的是如果我运行do while循环
This is from the for loop Office location is St. Paul
如果我将其放在其他请求之前的任何地方,我会在确认页面中找到空白区域。
任何关于它为什么这样做的想法都会有所帮助。提前谢谢。
答案 0 :(得分:1)
对于do {} while循环,仅在第一次迭代后设置条件。你只需要一个while循环,它在变量运行之前设置它。
while($row_rs_myquery = mysql_fetch_assoc($rs_myquery)){
echo "This is from the do while loop Office location is " .$row_rs_myquery['Office_Name'] ."<br />";
}
如果你想使用if循环(虽然while循环工作得更好,IMO,特别是因为你没有使用X),你想在尝试使用变量之前获取数组:
for($x=1; $x<=$total_rows; $x++){
$row_rs_myquery = mysql_fetch_assoc($rs_myquery);
echo "This is from the for loop Office location is " .$row_rs_myquery['Office_Name'] ."<br />";
}