我的表中有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;
答案 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);
以上代码解决了问题