我正在尝试设置应用程序可用性报告,我有一个带有应用程序名称的数组和一个数字。我将浏览列表并查找每个问题的持续时间并保存相应的数组,然后对其进行计算。我试着将它打印到桌子上,但没有骰子。我有我的测试回声和仍然在那里的循环,我得到一个打印出来的应用程序数组但在内部看起来没有执行,我无法确定原因。感谢您的帮助,我可以回答有关它的问题。我将在底部放置一个月/年表单输入,并使用提交按钮调用同一页面。
<?php
$applist = array('default1','default2','default3');
$numofapps = 3;
$i=0;
$downtime;
if($_POST['submitted']==1)
{
$month = $_POST['startmonth'];
}
else {
$month = date("m");
}
echo "<br />";
switch ($month){
case 01:
case 03:
case 05:
case 07:
case 08:
case 10:
case 12:
$totaltime = 31 * 1440;
break;
case 04:
case 06:
case 09:
case 11:
$totaltime = 30 * 1440.0;
break;
case 02:
$year = $_POST['startyear'];
if(($year%4)==0)
{
$totaltime = 29 * 1440.0;
}
else {
$totaltime = 28 * 1440.0;
}
break;
}
echo "<br />";
while($numofapps > $i)
{
$query="Select `duration` from `issuetrack` WHERE `app`='" . $applist[$i] . "'";
$result=mysql_query($query);
while($row = mysql_fetch_array($result))
{
echo $downtime[$i];
echo "TEST downtime <br />";
echo $row[$i];
echo "ETST DURATION <br />";
$downtime[$i]+=$row['duration'];
}
$appavail[$i]=($downtime[$i] / $totaltime) * 100;
$i++;
echo "<br />";
}
$j=0;
echo "<table border ='1'>";
echo "<tr><th>Application Affected</th><th>Application Availability</th>";
while ($numofapps > $j)
{
echo "<tr><td>";
echo $applist[$i];
echo "</td><td>";
echo $appavail[$i];
echo "</td></tr>";
}
echo "</table>";
?>
答案 0 :(得分:4)
检查 $ result 变量,例如
if($result)
echo "1";
else
echo mysql_error();
即使您没有任何数据,如果您的查询是正确的,那么它会打印1,否则会打印错误(如果有的话)。
同时检查你的mysql_connection以找出你与db的连接,如下所示:
mysql_connect('localhost','username','password') or die (mysql_error());
答案 1 :(得分:1)
如果您的脚本未输入while($row = mysql_fetch_array($result))
,那么这是因为查询未返回任何结果。尝试打印出你的查询(echo $query
)并直接在mysql中运行它以查看它返回的内容。
while ($numofapps > $j)
循环中的变量由$ i索引,但它们应该用$ j索引。此外,您需要一个$ j ++,否则它将循环,直到达到脚本执行时间限制。
答案 2 :(得分:0)
作为第一步检查mysql连接
mysql_connect('localhost','username','password') or die (mysql_error());
如果有连接,则检查查询是否返回了一些内容 通过使用以下查询
$count=mysql_num_rows($result);
if($count!=0)
{
while($row = mysql_fetch_array($result))
{
echo $downtime[$i];
echo "TEST downtime <br />";
echo $row[$i];
echo "ETST DURATION <br />";
$downtime[$i]+=$row['duration'];
}
}
else
{
echo "The query returned empty";
}