php mysql命令没有返回任何内容

时间:2011-11-22 05:47:55

标签: php mysql html

我正在尝试设置应用程序可用性报告,我有一个带有应用程序名称的数组和一个数字。我将浏览列表并查找每个问题的持续时间并保存相应的数组,然后对其进行计算。我试着将它打印到桌子上,但没有骰子。我有我的测试回声和仍然在那里的循环,我得到一个打印出来的应用程序数组但在内部看起来没有执行,我无法确定原因。感谢您的帮助,我可以回答有关它的问题。我将在底部放置一个月/年表单输入,并使用提交按钮调用同一页面。

<?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>";



            ?>

3 个答案:

答案 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";
     }