mysql_num_rows()函数无法正常工作

时间:2017-02-18 17:26:24

标签: php ajax

我的表中有5条记录,if循环没有运行&抛出一个

  

警告:mysql_num_rows()期望参数1是资源,   第20行的C:\ xampp \ htdocs \ Crud \ select.php中给出的布尔值

我可以做出哪些改变以消除错误?

$link=mysql_connect("localhost","root","");

$output='';
$sql="SELECT *FROM detail ORDER BY id DESC";
$result=mysql_query($sql);
$output .='

<div align="center">
<table border=5 width=500>
<tr>
<th width="40%">ID</th>
<th width="40%"> First Name</th>
<th width="40%"> Last Name</th>
</tr>';



if(mysql_num_rows($result)>0)

{
    while($row=mysql_fetch_array($result))
    {
    $output .='
    <tr>
    <td>'.$row["id"].'</td>
    <td class="name" data-id1"'.$row["id"].'" contenteditedtable>'.$row["name"].'</td>
    <td class="lname" data-id2"'.$row["id"].'" contenteditedtable>'.$row["lname"].'</td>
    <td>button type="button" name="delete_btn" data-id3="'.$row["id"].'" id="delete">Delete</button></td>
    </tr>';
    }

    $output .='
    <tr>
    <td></td>
    <td id="name" contenteditedtable></td>
    <td id="lname" contenteditedtable></td>

    <td><button type="button" name="add">Add</button></td>
    </tr>';

    }
    $output .='</table>
    </div>';
    echo $output;

2 个答案:

答案 0 :(得分:2)

您的实际问题是您的SQL查询,它失败了。

$sql="SELECT *FROM detail ORDER BY id DESC";

*和FROM

之间需要一个空格
$sql="SELECT * FROM detail ORDER BY id DESC";

你可能有其他问题,但这就是现在正在发生的事情。由于您的SQL查询失败,它返回一个布尔值,在这种情况下是假的。

同样如我在上面的评论中所提到的,mysql_affected_rows不用于select语句,这里是文档的摘录。

  

通过上一次INSERT,UPDATE,REPLACE或DELETE查询获取受影响的行数

您实际想要使用的功能是mysql_num_rows

  

从结果集中检索行数。此命令仅对返回实际结果集的SELECT或SHOW等语句有效。

答案 1 :(得分:0)

此处缺少数据库连接,因此产生了问题

mysql_select_db(database_name,connection);

以上代码解决了问题