MULTI SEARCH PHP

时间:2016-08-31 03:55:45

标签: php

任何人都可以帮我解决代码中的错误吗?我想通过两个输入搜索来显示数据。我的代码就是这样。

<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为资源,布尔值在”

中给出

谢谢! :)

5 个答案:

答案 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';