简单的 PHP for 循环无限
Simple PHP for loop going infinite
我是 PHP 编程的新手,但这看起来非常简单。但是,每次我 运行 这都会陷入无限循环。 $facility
是一个数组,在我目前的测试中size=2
。任何帮助,将不胜感激。看起来问题不一定是无限循环,网页一直处于加载状态,直到我终止进程,所以我假设无限循环。
$facility = $_POST['facility'];
$whereClause = 'WHERE c.residentId = r.residentId AND c.sid = s.id AND p.sid = s.id AND c.createdAt BETWEEN p.effectiveStart AND p.effectiveEnd';
if ($facility[0] !== "ALL") {
$whereClause = $whereClause.' AND s.facilityAbbr = "'.$facility[0].'"';
$size = sizeof($facility);
for($i = 1; $i< $size; $i++)
{
$whereClause = $whereClause.' OR c.facilityAbbr = "'.$facility[$i].'"';
}
}
您需要确保您的字符串变量在连接之前已初始化。
$whereClause = '';
$size = sizeof($facility);
for($i = 1; $i<$size; $i++) {
$whereClause .= ' OR c.facilityAbbr = "'.$facility[$i].'"';
}
正如我在评论中提到的那样,如何缩短行,我将 post 放在这里,这样更有意义。
此外,请注意,如果 $facility
是一个包含无限项的数组,这是无限循环的唯一方式,这是值得怀疑的。您可能希望通过将其放在该代码之前的某处来打开错误报告。
ini_set('display_errors', 1);
您也可以使用 Foreach 循环,这在我看来更合适,而且代码更少。
$whereClause = '';
foreach( $facility as $item ){
$whereClause .= ' OR c.facilityAbbr = "'.$item.'"';
}
我是 PHP 编程的新手,但这看起来非常简单。但是,每次我 运行 这都会陷入无限循环。 $facility
是一个数组,在我目前的测试中size=2
。任何帮助,将不胜感激。看起来问题不一定是无限循环,网页一直处于加载状态,直到我终止进程,所以我假设无限循环。
$facility = $_POST['facility'];
$whereClause = 'WHERE c.residentId = r.residentId AND c.sid = s.id AND p.sid = s.id AND c.createdAt BETWEEN p.effectiveStart AND p.effectiveEnd';
if ($facility[0] !== "ALL") {
$whereClause = $whereClause.' AND s.facilityAbbr = "'.$facility[0].'"';
$size = sizeof($facility);
for($i = 1; $i< $size; $i++)
{
$whereClause = $whereClause.' OR c.facilityAbbr = "'.$facility[$i].'"';
}
}
您需要确保您的字符串变量在连接之前已初始化。
$whereClause = '';
$size = sizeof($facility);
for($i = 1; $i<$size; $i++) {
$whereClause .= ' OR c.facilityAbbr = "'.$facility[$i].'"';
}
正如我在评论中提到的那样,如何缩短行,我将 post 放在这里,这样更有意义。
此外,请注意,如果 $facility
是一个包含无限项的数组,这是无限循环的唯一方式,这是值得怀疑的。您可能希望通过将其放在该代码之前的某处来打开错误报告。
ini_set('display_errors', 1);
您也可以使用 Foreach 循环,这在我看来更合适,而且代码更少。
$whereClause = '';
foreach( $facility as $item ){
$whereClause .= ' OR c.facilityAbbr = "'.$item.'"';
}