所以我继承了一个最后在2003年左右维护的PHP应用程序。我已设法将其迁移到具有更新的mySQL和PHP的新主机,并替换了所有已弃用的命令并修复了除一个之外的所有错误。
有一个联系人列表页面,它将分页索引放在结果的底部,但错误输出最多30秒。我已经尝试过抛出CPU和内存,但奇怪的是旧硬件上的结果会在几秒钟后返回。
我已经从控制台检查了mySQL查询,结果在0.00秒内返回 - 只有3000条记录。在while循环期间发生错误。
$order="SELECT COUNT(*) FROM company where isbroker='0'";
$order2=mysqli_query($db,$order) or die("2");
$d=0;
$f=0;
$g=1;
$order3=mysqli_fetch_array($order2, MYSQLI_NUM);
$prev=$start-20;
$next=$start+20;
if($start>=20) {
$begcode_sql="select companycode,companyname from company where isbroker='0' " .
"order by companyname limit 0,1";
$begcode_handle=mysqli_query($db,$begcode_sql) or die (mysqli_error());
list($begcode,$begcompname)=mysqli_fetch_array($begcode_handle);
$begcode=substr($begcompname,0,4);
print "<td><A title='$begcompname' href='view.php'><font color='white'>First<br />$begcode</font></a></td>";
print "<td><A href='view.php?start=$prev'><font color='white'><<</font></a> </td>";
}
print "<p>Begin pagination code</p";
#script is timing out here... too long to run
while($f < $order3) {
if($f % 20 == 0) {
if($f >= $start-5 * 20 && $d < 10) {
print "<td align='center'>";
$begcode_sql="select companycode,companyname from company where isbroker='0' " .
"order by companyname limit $f,1";
$begcode_handle=mysqli_query($db,$begcode_sql) or die (mysqli_error());
list($begcode,$begcompname)=mysqli_fetch_array($begcode_handle, MYSQLI_NUM);
if ( $f != $start ) {
print "<A title='$begcompname' href='view.php?start=$f'><b><font color='white'>";
$islast=0;
} else {
print "<font color='grey'>";
$islast=1;
}
print $g . "<br />" . substr($begcompname,0,4) . "</font>";
if ( $f != $start ) {
print "</b></a>";
}
print "</td>";
$d++;
}
$g++;
}
$f++;
}