2013-11-26 63 views
0

中给出请有人可以告诉我这段代码有什么问题,它显示此错误---------> 警告:mysql_num_rows()期望参数1在第62行上的/home/ocwnewco/public_html/user/rejectedcase.php中给出了布尔值,第62行显示了这个-------> $ ocwConnections = mysql_num_rows($ result);数据库mysql_num_rows()期望参数1是资源,布尔在

      rejectedcase.php     
          <?php 
      require_once(ROOT_PATH.'DBconnect.php'); 
      ?> 
      <?php 
      /** 
      *get count of Reject 
      * 
      **/ 
      function totalReject($zone,$Reject) { 
      $result = mysql_query("SELECT * FROM ocwconnections WHERE ZoneID = '$zone' AND RejectID = '$Reject'"); 
      $ocwConnections = mysql_num_rows($result); 
      return $ocwConnections; 
      } 
      $ocwConnections = mysql_fetch_array(mysql_query("SELECT * FROM ocwconnections")); 
      $resultZone = mysql_query("SELECT * FROM `connection_zone` WHERE `Zone` <> 'All' "); 
      $resultReject = mysql_query("SELECT * FROM `connection_Reject` WHERE `Reject` <> 'All'"); 
      ?> 
      <?php 
      ?> 

      <table border="1"> 
       <tr> 
       <th class="tbhed">Zone</th> 
       <?php 
      $Reject = array(); 
      while($connectioReject = mysql_fetch_array($resultReject)) { 
      echo "<th class=tbhed>".$connectioReject['Reject']."</th>"; 
      $Reject[] = $connectioReject['RejectID']; 
      } 
      ?> 
       <th class="tbhed">Total</th> 
       <th class="tbhed">Percentage</th> 
       </tr> 
       <?php 
      $arr = array(); 
      while($connectioZone = mysql_fetch_array($resultZone)) { 
      ?> 
       <tr> 
       <th><?php echo $connectioZone['Zone']; ?></th> 
       <?php 
      foreach($Reject as $value){ 
      $arr[$connectioZone['ZoneID']][$value] = totalReject($connectioZone['ZoneID'],$value); 
      echo "<td>".totalReject($connectioZone['ZoneID'],$value)."</td>"; 
      } 
      ?> 
       <td><?php 
      $total = 0; 
      foreach($arr[$connectioZone['ZoneID']] as $value){ 
      $total = $value + $total; 
      } 
      echo $total; 
      ?> 
       </td> 
       <td><?php 
      foreach($arr[$connectioZone['ZoneID']] as $key => $val){ 
      if($key == 2){ 
      $complete = $val; 
      } 
      } 
      @$per = $complete * 100/$total; 
      if(!$per){ 
      echo $per = 0; 
      } 
      else { 
      echo $per; 
      } 
      ?> 
        % </td> 
       </tr> 
       <?php 
      } 
      ?> 
      </table> 
+0

使用或从句前的mysql_query( “查询”)检查您的查询或死亡( “查询!”);这会让你知道查询是否正在执行。 – rohitr

+0

请参阅[此答案](http://stackoverflow.com/a/11674313/250259)了解如何解决此问题。 –

回答

0

检查$它传递给mysql_num_rows之前导致。你会发现它是错误的,因为查询失败。

检查结果集是否为空。

if($result === FALSE) { 
die(mysql_error()); // TODO: better error handling 
} 

$row = mysql_num_rows($result); 

你的新的功能将类似于下一个

function totalReject($zone,$Reject) { 
    $result = mysql_query("SELECT * FROM ocwconnections WHERE ZoneID = '$zone' AND RejectID = '$Reject'"); 
    if($result === FALSE) { 
     die(mysql_error()); // TODO: better error handling 
     } 

     $ocwConnections = mysql_num_rows($result); 
     return $ocwConnections; 
} 
+0

显示此错误---->'where子句中的未知列'RejectID' – MaheshDigarse

+0

让我知道您的表结构? – user2486495

0
The mysql_query is returning a boolean value meaning the sql query is probably failing and you're getting a false returned rather than a mysql resource. 

    Have you checked your query? 



try this 

$result = mysql_query("SELECT * FROM ocwconnections WHERE ZoneID = '".$zone."' AND RejectID = '".$Reject."'"); 
相关问题