可能重复:
mySQL query multiple - returns error mysql_fetch_array
我有2个数据库表(对于预订系统),具有以下结构:
房间:
id_quarto.
tipo_quarto.
vista_quarto.
饭店预订:
id_reserva.
n_cliente.
id_quarto.
check_in.
check_out.
我希望查询返回可用的四分之一(房间)(其中包含字段id_quarto / tipo_quarto / vista_quarto),这些字段尚未在预留(预订)上预订,因此我编写以下查询(同时从以前的信息中选取信息)形式):
注意:此时我不考虑check_in和check_out日期因素......这只是一个测试,因此我会添加条件来检查它,但如果有人对这些条件有一些想法,我会感激。 :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(); ?>
但是当我这样做时,它会在第X行返回一个错误,这是我循环记录集时说“mysql_fetch_array()希望参数1是资源,布尔”的行。
为什么这是我能做些什么来阻止它呢?我该如何编写正确的代码?
此外,我希望结果显示为选择(列表/菜单)表单项,以便用户只能选择有效的结果。知道如何将记录集的结果与此功能结合起来吗?
答案 0 :(得分:1)
你错过了
$rs=mysql_query($strSQL)
紧接着之前
// Loop the recordset $rs
答案 1 :(得分:0)
严格来说,你应该说:
if ($rs=mysql_query($strSQL)) {
// Proceed with while loop
} else echo mysql_error();
查询可能会引发错误???