当 IF 满足要求时停止 Do While LOOP
Stop Do While LOOP when IF meet the requirement
我已尝试在 Whosebug
中找到解决方案来解决我的问题,但没有一个与我的问题匹配。
我的问题是;
我的 javascript
中有 if statement
,if statement
中有一个弹出窗口。我希望我的 javascript 仅在 if statement
满足条件时才显示弹出窗口 1 次。我尝试在 if statement
中使用 break,但它仍然弹出了几次。
代码:
<?php
if(isset($_POST['submit'])){
$reserve_stime = htmlentities($_POST['starttime']);
$reserve_etime = htmlentities($_POST['endtime']);
$reservedstime = "SELECT startmeetingtime, endmeetingtime
FROM meeting_room_reservation
WHERE room_reserve_session = '$varsession'
AND room_reserve_date = '$convardate'
AND room_id = $idroom";
$result7=mysql_query($reservedstime) or die("invalid query:".mysql_error());
while($row7=mysql_fetch_assoc(@$result7)){
$reservedstime2 = "SELECT timereserve_start_id
FROM timereserve_start
WHERE timereserve_start_id BETWEEN " . $row7['startmeetingtime'] . " AND " . $row7['endmeetingtime'] . "";
$result8=mysql_query($reservedstime2) or die("invalid query:".mysql_error());
while ($row8=mysql_fetch_assoc(@$result8)) {
$timealreadyreserved = $row8['timereserve_start_id'];
echo "<script type='text/javascript'>
for (i=$reserve_stime; i <= $reserve_etime ; i++){
if (i == $timealreadyreserved){
alert('Time is not Available');
break;
}
else{
//do nothing
}
}
</script>";
}
}
}
?>
朋友说,问题出在for
循环之前有do
while
循环,所以即使已经放了break
里面 if statement
有什么想法吗?
谢谢你,
费扎尔
你可以使用一个布尔变量(如$flag
)来检查条件是否满足,然后跳出循环,像这样:
// your code
while($row7=mysql_fetch_assoc(@$result7)){
$reservedstime2 = "SELECT timereserve_start_id
FROM timereserve_start
WHERE timereserve_start_id BETWEEN " . $row7['startmeetingtime'] . " AND " . $row7['endmeetingtime'] . "";
$result8=mysql_query($reservedstime2) or die("invalid query:".mysql_error());
$flag = false;
while($row8=mysql_fetch_assoc(@$result8)) {
$timealreadyreserved = $row8['timereserve_start_id'];
for ($i=$reserve_stime; $i <= $reserve_etime ; $i++){
if($i == $timealreadyreserved){
$flag = true;
?>
<script>alert("Time is not Available");</script>
<?php
break;
}
}
if($flag){
break;
}
}
if($flag){
break;
}
}
// your code
警告:不要在代码中混合使用 javascript 和 php,就像在内部 for
循环中所做的那样。
旁注:不要使用 mysql_
数据库扩展,它们在 PHP 5.5.0 中被弃用并在 PHP 中被删除7.0.0。请改用 mysqli
或 PDO
扩展名。这是 why you shouldn't use mysql_ functions.
我已尝试在 Whosebug
中找到解决方案来解决我的问题,但没有一个与我的问题匹配。
我的问题是;
我的 javascript
中有 if statement
,if statement
中有一个弹出窗口。我希望我的 javascript 仅在 if statement
满足条件时才显示弹出窗口 1 次。我尝试在 if statement
中使用 break,但它仍然弹出了几次。
代码:
<?php
if(isset($_POST['submit'])){
$reserve_stime = htmlentities($_POST['starttime']);
$reserve_etime = htmlentities($_POST['endtime']);
$reservedstime = "SELECT startmeetingtime, endmeetingtime
FROM meeting_room_reservation
WHERE room_reserve_session = '$varsession'
AND room_reserve_date = '$convardate'
AND room_id = $idroom";
$result7=mysql_query($reservedstime) or die("invalid query:".mysql_error());
while($row7=mysql_fetch_assoc(@$result7)){
$reservedstime2 = "SELECT timereserve_start_id
FROM timereserve_start
WHERE timereserve_start_id BETWEEN " . $row7['startmeetingtime'] . " AND " . $row7['endmeetingtime'] . "";
$result8=mysql_query($reservedstime2) or die("invalid query:".mysql_error());
while ($row8=mysql_fetch_assoc(@$result8)) {
$timealreadyreserved = $row8['timereserve_start_id'];
echo "<script type='text/javascript'>
for (i=$reserve_stime; i <= $reserve_etime ; i++){
if (i == $timealreadyreserved){
alert('Time is not Available');
break;
}
else{
//do nothing
}
}
</script>";
}
}
}
?>
朋友说,问题出在for
循环之前有do
while
循环,所以即使已经放了break
里面 if statement
有什么想法吗? 谢谢你, 费扎尔
你可以使用一个布尔变量(如$flag
)来检查条件是否满足,然后跳出循环,像这样:
// your code
while($row7=mysql_fetch_assoc(@$result7)){
$reservedstime2 = "SELECT timereserve_start_id
FROM timereserve_start
WHERE timereserve_start_id BETWEEN " . $row7['startmeetingtime'] . " AND " . $row7['endmeetingtime'] . "";
$result8=mysql_query($reservedstime2) or die("invalid query:".mysql_error());
$flag = false;
while($row8=mysql_fetch_assoc(@$result8)) {
$timealreadyreserved = $row8['timereserve_start_id'];
for ($i=$reserve_stime; $i <= $reserve_etime ; $i++){
if($i == $timealreadyreserved){
$flag = true;
?>
<script>alert("Time is not Available");</script>
<?php
break;
}
}
if($flag){
break;
}
}
if($flag){
break;
}
}
// your code
警告:不要在代码中混合使用 javascript 和 php,就像在内部 for
循环中所做的那样。
旁注:不要使用 mysql_
数据库扩展,它们在 PHP 5.5.0 中被弃用并在 PHP 中被删除7.0.0。请改用 mysqli
或 PDO
扩展名。这是 why you shouldn't use mysql_ functions.