我正在尝试运行一个PHP脚本,基本上说,虽然MySQL数据库中的两个单元格是空的(t_trailerarrival和t_endsort),但是做了些什么。
我的代码如下:
<?php
// Start Session, include authentication and dBConnection script
session_start();
include 'dbcon.php';
include 'sql_actuals.php';
$current_time = date("G");
while($query9_row['a_trailerarrival'] == NULL && $query10_row['a_endsort'] == NULL) {
echo "Trailer Arrival";
}
$ queryx_row ['abc']都在sql_actuals脚本中,该脚本包含在此脚本中。
出于某种原因,每次我运行这个脚本 - 我的浏览器都不会加载结果(只是加载),然后我的网站在windows azure似乎崩溃并需要几分钟才能重新启动。
有人可以告诉我的脚本是否存在明显的错误?或者指出可能存在的问题。
非常感谢提前。
仅供参考,我尝试添加一行sleep(1);
,这样它就会让服务器延迟运行,然后再次运行该程序,但没有运气。
答案 0 :(得分:2)
你永远不会关闭while循环。
while($query9_row['a_trailerarrival'] == NULL && $query10_row['a_endsort'] == NULL) {
echo "Trailer Arrival";
}
如果不在while语句中修改while条件,一旦启动,就永远不会停止。因此挂起脚本和服务器。
答案 1 :(得分:1)
除了回显一行之外,你实际上并没有在while语句中做任何事情。
因此
$query9_row['a_trailerarrival'] == NULL
和
$query10_row['a_endsort'] == NULL
总是正确且永不改变,它永远不会退出while循环。您需要在while循环中放置退出条件,例如:
$i=0;
while(($query9_row['a_trailerarrival'] == NULL
&& $query10_row['a_endsort'] == NULL )
|| $i==10) {
$i++;
echo "Trailer Arrival";
}
虽然从逻辑上讲,你仍然需要运行查询数据。
**编辑**
根据您的反馈,这听起来不像是一个while循环,而是您需要的if
语句(具有多个elseif
s)。
if ($query9_row['a_trailerarrival'] == NULL && $query10_row['a_endsort'] == NULL){
echo "Trailer Arrival";
} elseif ($query9_row['a_trailerarrival'] == NULL && $query10_row['a_endsort']){
echo "End Sort";
} elseif ($query9_row['a_trailerarrival'] && $query10_row['a_endsort']){
echo "First Van";
}else {
// fourth condition:
// $query9_row['a_trailerarrival'] != NULL && $query10_row['a_endsort'] == NULL
}
当$ query9_row不为null且$ query10_row为null时,我包含第四个条件。