Php mySQL查询-仍然返回错误mySQL\u fetch\u数组

Php mySQL查询-仍然返回错误mySQL\u fetch\u数组,php,mysql,Php,Mysql,可能重复: 我有2个数据库表(用于预订系统),具有以下结构: 夸脱: id_quarto. tipo_quarto. vista_quarto. 预订: id_reserva. n_cliente. id_quarto. check_in. check_out. 我希望查询返回可用的四分之一(房间)(带有字段id\u quarto/tipo\u quarto/vista\u quarto),这些房间还没有预订(预订),因此我编写以下查询(也从以前的表单中选择信息): 注意:目前我不考虑入住

可能重复:

我有2个数据库表(用于预订系统),具有以下结构:

夸脱:

id_quarto.
tipo_quarto.
vista_quarto.
预订:

id_reserva.
n_cliente.
id_quarto.
check_in.
check_out.
我希望查询返回可用的四分之一(房间)(带有字段id\u quarto/tipo\u quarto/vista\u quarto),这些房间还没有预订(预订),因此我编写以下查询(也从以前的表单中选择信息):

注意:目前我不考虑入住和退房日期因素。。。这只是一个测试,因此我将添加条件来检查它,但如果有人对这些条件有一些想法,我将不胜感激D

// Connect to database server
mysql_connect("localhost", "root") or die (mysql_error ());

// Select database
mysql_select_db("teste") or die(mysql_error());

// Get data from the database

    $strSQL = "SELECT id_quarto,tipo_quarto,vista_quarto ".
              " FROM quartos,reservas ".
              " WHERE quartos.id_quarto!=reservas.id_quarto ".
              " AND quartos.tipo_quarto='". mysql_real_escape_string($_POST['tipo_quarto']) ."' ".
              " AND quartos.vista_quarto='". mysql_real_escape_string($_POST['vista_quarto']) ."'";
$rs = mysql_query($strSQL);


    // Loop the recordset $rs
        // Each row will be made into an array ($row) using mysql_fetch_array
        while($row = mysql_fetch_array($rs)) {

    ?>
    <table border="1">
        <tr align="left">
        <td width="75"><?php echo $row['id_quarto']; ?></td>
        <td width="75"><?php echo $row['vista_quarto']; ?></td>
        <td width="75"><?php echo $row['tipo_quarto']; ?></td></tr>
      </table>
     <?php 
     }

       // Close the database connection
    //  mysql_close(); ?>
//连接到数据库服务器
mysql_connect(“localhost”、“root”)或die(mysql_error());
//选择数据库
mysql_选择_db(“teste”)或die(mysql_error());
//从数据库中获取数据
$strSQL=“选择id四分之一、tipo四分之一、vista四分之一”。
“从四分之一开始,预订”。
“WHERE quartos.id\u quarto!=reservas.id\u quarto”。
“和quartos.tipo_quarto=”。mysql_real_escape_字符串($_POST['tipo_quarto'])。“”。
“和quartos.vista_quarto=”。mysql_real_escape_字符串($_POST['vista_quarto'])。“”;
$rs=mysql\u查询($strSQL);
//循环记录集$rs
//每一行都将使用mysql\u fetch\u数组生成一个数组($row)
while($row=mysql\u fetch\u数组($rs)){
?>
但当我这样做时,它在第X行返回一个错误,这是我循环记录集时的一行,它说“mysql\u fetch\u array()期望参数1是资源,布尔值”

为什么会出现这种情况?我可以做些什么来防止它?如何编写正确的代码

另外,我希望结果作为一个选择(列表/菜单)表单项,以便用户只能选择有效的结果。您知道如何将记录集中的结果与此功能结合起来吗?

您错过了

$rs=mysql_query($strSQL)
当然就在之前

// Loop the recordset $rs

严格来说,你应该说:

if ($rs=mysql_query($strSQL)) {

// Proceed with while loop

} else echo mysql_error();

查询可能会引发错误???

您仍然没有使用
mysql\u query()
,是吗?是
的“选择id\u quarto”
在您的查询中应该是指
quartos.id\u quarto
reservas.id\u quarto
?并且该查询在没有指定的情况下是否工作?!您在哪里执行查询?重复。@MarkByers它是指quartos.id\u quarto您仍然没有检查查询结果。$rs=mysql\u query($strSQL);已包括在内。抱歉。仍然不起作用。下一步:执行“echo$strSQL;”在“$rs=mysql_query($strSQL);”之前,将SQL复制到mysql命令行客户端并发布结果。