0

可能重复:
警告:mysql_fetch_* 期望参数 1 是资源,布尔给定错误

并试图修复这个错误,但我不能

此错误仅发生在某些结果中,例如我的表有每个 id 的 8 个注释资格,但有些表明我不是

这是代码

    <?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)  ; 
4

2 回答 2

0

你有 sql 语法错误,所以你没有得到结果集。使用 mysql_error() 函数在查询数据库时知道错误。

改变

$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 注入的影响。

于 2012-10-24T12:36:58.157 回答
0

有时那个警告是,如果查询的结果在while 内没有返回值,也就是当表上没有记录时。

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

隐藏警告使用字符@。

例如

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

最好的祝福

于 2012-10-24T14:11:51.153 回答