2012-10-24 41 views
0

可能重复:
Warning: mysql_fetch_* expects parameter 1 to be resource, boolean given error警告:mysql_fetch_array()预计参数1是资源,布尔在problema CON EL诡计给

,并试图解决这个错误,但我不能

这个错误只出现在一些结果 例如我的表有每个id的8笔记资格但是 bu t为一些节目,我不是

这是代码

<?php 

    while($rs = mysql_fetch_array($sql)) { 

     echo "<tr>" ?> 

     <form id="ingreso_nota" method="post" action="editnotasql.php"> 

     <td><input type="text" name="nota_1" value="<?php echo $rs["nota_1"] ?>" /></td> 

     <td><input type="text" name="nota_2" value="<?php echo $rs["nota_2"] ?>" /></td> 

     <td><input type="text" name="nota_3" value="<?php echo $rs["nota_3"] ?>" /></td> 

     <td><input type="text" name="nota_4" value="<?php echo $rs["nota_4"] ?>" /></td> 

     <td><input type="text" name="nota_5" value="<?php echo $rs["nota_5"] ?>" /></td> 

     <td><input type="text" name="nota_6" value="<?php echo $rs["nota_6"] ?>" /></td> 

     <td><input type="text" name="nota_7" value="<?php echo $rs["nota_7"] ?>" /></td> 

     <td><input type="text" name="nota_8" value="<?php echo $rs["nota_8"] ?>" /></td> 

     <input type="hidden" name="rut" value="<?php echo $rs["rut"] ?>"> 

     <input type="hidden" name="id_asig" value="<?php echo $rs["id_asig"] ?>"> 



     <?php 

     echo "</tr>"; 

     } 

这个我产生多行的表,但只有其中一个给了这个错误

这是查询SQL

  $rut =$_GET["rut"]; 

      $id_asig =$_GET["asignatura"]; 
      $nombre =$_GET["nombre"]; 
      $curso =$_GET["curso"]; 
$sql = "SELECT * FROM calificaciones WHERE rut=$rut AND id_asig=$id_asig" ; 
      $sql = mysql_query($sql, $con) ; 
+0

你的WHERE子句需要封装在引号。 'rut ='$ rut''另外,这是注射成熟的。我推荐绑定参数和mysqli或PDO。 – jdstankosky

+0

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护,[弃用过程](http://j.mp/Rj2iVR)已经开始。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 –

回答

0

有时候这样的警告是,如果内部查询的结果没有返回任何值,也就是说,例如当表上没有记录时。

我的意思是,在某些情况下,您的代码和您的应用程序是正确的,但警告出现。

隐藏警告使用字符@。

例如

while(@$rs = mysql_fetch_array($sql)) { 
    ... 
} 

问候

0

你的SQL语法错误,这样你就不会得到结果set.Use mysql_error()函数知道错误而quering数据库。

变化

$sql = "SELECT * FROM calificaciones WHERE rut=$rut AND id_asig=$id_asig" ; 

$sql = "SELECT * FROM calificaciones WHERE rut='{$rut}' AND id_asig='{$id_asig}'" ; 

注:您的查询必须由MySQL注入的影响。

+0

muchas gracias,me resulto bien,ahora como para entender en que varia la diferencia de utilizar las llaves? – Luisruiz

+0

是什么?没有得到你? – GBD

相关问题