首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将此警告移至此php脚本

问如何将此警告移至此php脚本
EN

Stack Overflow用户
提问于 2013-11-26 09:49:27
回答 3查看 69关注 0票数 1

我有这个php查询,它将许多表从(婴儿类到标准的7级)连接起来,这样我就可以得到每个表的总和表和。

但是当我运行这个查询时,它会给我一个警告:

代码语言:javascript
复制
Warning: mysql_fetch_array() expects   
parameter 1 to be resource, boolean given in   
C:\wamp\www\db_valentine_V2\Templates\school_income.php on line 872

我想在第872行中找出有这个脚本的地方

代码语言:javascript
复制
while($res=mysql_fetch_array($q)){

有人能帮我移除这个警告吗?它真的花了我很长时间,没有任何成功。

代码语言:javascript
复制
  <?php

 $date="date";
 $class="class";
 $database=("mcl");
 mysql_connect("localhost","root","mcl");
 @mysql_select_db(mcl) or die( "Unable to select database");


if(isset($_REQUEST['submit'])){
$class=$_POST['class'];
$date=$_POST['date'];


$sql="SELECT SUM(Total) FROM 
    ( SELECT     
   SUM(school_fee+trans_fee+reg_fee+edutrip_fee+stationery_fee+food_fee+
  uniform_fee+sport_uniform) As Total FROM payment UNION  

    SELECT SUM(school_fee+trans_fee+reg_fee+edutrip_fee+stationery_fee+
   food_fee+uniform_fee+sport_uniform) As Total FROM payment_one UNION
  SELECT    SUM(school_fee+trans_fee+reg_fee+edutrip_fee+stationery_fee+food_fee
  +uniform_fee+sport_uniform) As Total   
        FROM payment_two UNION
   SELECT   SUM(school_fee+trans_fee+reg_fee+edutrip_fee+stationery_fee+food_fee
  +uniform_fee+sport_uniform) As Total   
        FROM payment_three UNION
  SELECT   
 SUM(school_fee+trans_fee+reg_fee+edutrip_fee+stationery_fee+food_fee+
 uniform_fee+sport_uniform) As Total   
        FROM payment_four UNION
  SELECT SUM(school_fee+trans_fee+reg_fee+edutrip_fee+stationery_fee+food_fee+
  uniform_fee+sport_uniform) As Total   
        FROM payment_five UNION
 SELECT   SUM(school_fee+trans_fee+reg_fee+edutrip_fee+stationery_fee+food_fee+
 uniform_fee+sport_uniform) As Total   
        FROM payment_six UNION
 SELECT SUM(school_fee+trans_fee+reg_fee+edutrip_fee+stationery_fee+food_fee+
 uniform_fee+sport_uniform) As Total   
        FROM payment_seven )a)";


 $q=mysql_query($sql);  

    }

  ?>


<form method="post">
<table width="500" border="0">
 <tr>
<td>Class</td>
<td><input type="text" name="class" value="<?php echo $class;?>" /></td>

<td>Year</td>
<td><input type="number" name="date" value="<?php echo $date;?>" /></td>

<td><input type="submit" name="submit" value="Search" /></td>
 </tr>
</table>
<br />
   </form>
    <table>
    <h4>
   This is total amount of money payed by&nbsp;<?php echo $class;?> &nbspclass     
   in&nbsp<?php echo $date;?>&nbsp;</h4><hr> 
   <table width="700" border="0" height="2" cellpadding="0" cellspacing="1" >
   <tr>
    <td bgcolor="#FF9900" width="50">Class</td>
     <td bgcolor="#FF9900" width="300">Total amount of money payed</td>

   </tr>
  <?php
   while($res=mysql_fetch_array($q)){

       ?>

     <tr>
     <td width="100"><?php echo $res['class'];?></td>
     <td width="200"><?php echo $res['SUM(Total)'];?></td>

     </tr>

    <?php }?>    



     </table>          
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-26 09:53:48

尝试:

代码语言:javascript
复制
while(!empty($q) and $res=mysql_fetch_array($q)){
票数 0
EN

Stack Overflow用户

发布于 2013-11-26 09:56:26

在您的代码变量中,$q没有在if条件之外访问的范围。

因此,您需要在您的if条件之前定义它。将下面的行添加到if条件之上。

代码语言:javascript
复制
$q="";

代替while循环,请使用以下代码:

代码语言:javascript
复制
if(!empty($q)) {
   while($res=mysql_fetch_array($q)){
           -----------
          your code
          ---------------
   }
}
票数 1
EN

Stack Overflow用户

发布于 2013-11-26 09:51:53

试试像这样的东西

代码语言:javascript
复制
if($q === FALSE) {
        die(mysql_error()); // TODO: better error handling
    }

while($res=mysql_fetch_array($q))
{
    //do here
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20213513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档