任何人都可以帮我解决代码中的错误吗?我想通过两个输入搜索来显示数据。我的代码就是这样。
<table>
<tr>
<td>Studid</td>
<td>Course</td>
</tr>
<?php
include ("connect.php");
if(isset($_POST['submit']))
{
$studno=$_POST['idsearch'];
$scourse=$_POST['coursesearch'];
$sql=mysql_query("SELECT * FROM cfnr WHERE studid= ".$studno." AND course=".$scourse."");
}
?>
<?php
while($row=mysql_fetch_array($sql))
{
}
?>
<tr>
<td><?php echo $row['studid'];?></td>
<td><?php echo $row['course'];?></td>
</tr>
</table>
我的屏幕出现此错误。
“mysql_fetch_array()期望参数1为资源,布尔值在”
中给出谢谢! :)
答案 0 :(得分:0)
您应该使用一些调试。试试这个:
$sql = "SELECT * FROM cfnr WHERE studid= '".$studno."' AND course = '".$scourse."'";
$query = mysql_query($sql) or die(__LINE__."has an error: ".mysql_error()); // Gives an error if there's a syntax error
$row = mysql_fetch_array($query);
echo "<pre>";
print_r($row);
exit;
while ($row = mysql_fetch_array($query)) {
/* Other code */
}
答案 1 :(得分:0)
用以下行替换你的sql:
$sql=mysql_query("SELECT * FROM cfnr WHERE studid= ".$studno." AND course=".$scourse."") or die(mysql_error());
答案 2 :(得分:0)
问题是你的`$ sql变量在if条件下,如果你的if条件失败,那么if条件之外没有$ sql的范围
而不是
while($row=mysql_fetch_array($sql))
使用
while($row=@mysql_fetch_array($sql))
你不会得到这个错误。
答案 3 :(得分:0)
(“SELECT * FROM cfnr WHERE studid ='$ studno'AND course ='$ scourse。'”)或die(mysql_error());
答案 4 :(得分:0)
更改代码:
while($row=mysql_fetch_array($sql))
到
while($row=mysql_fetch_assoc($sql))
并更改此代码:
$sql=mysql_query("SELECT * FROM cfnr WHERE studid= ".$studno." AND course=".$scourse."");
到
$sql=mysql_query("SELECT * FROM cfnr WHERE studid= '$studno' AND course='$scourse'");
不仅如此,isset()
的括号应该在你的(?>
)最后关闭php标签之前打开。
更改代码:
include ("connect.php");
到
include 'connect.php';