我有2个数据库表(为一个预订系统)具有以下结构:mySQL的查询多个 - 返回错误mysql_fetch_array
房间:
id_quarto
。tipo_quarto
。vista_quarto
。
饭店预订:
id_reserva
。n_cliente
。id_quarto
。check_in
。check_out
。
我希望查询返回quartos(室)提供(与场id_quarto/tipo_quarto/vista_quarto从它),它的arent已经被预订了饭店预订(预订),所以我写了下面的查询(也捡信息从以前的表格):
注意:此时我不考虑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='". $_POST['tipo_quarto'] ."' ".
" AND quartos.vista_quarto='". $_POST['vista_quarto'] ."'";
// 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是资源,布尔”。
这是为什么,我能做些什么来防止它?我如何编写正确的代码?
此外,我希望结果以选择(列表/菜单)表单项为特色,以便用户只能选择有效的结果。任何想法如何将记录集的结果与此功能结合?
谢谢MGA的编辑。现在阅读起来很容易。 :) – SerafimSaudade 2012-01-11 10:50:48
欢迎来到堆栈溢出!你显示的代码容易受到[SQL注入](http://php.net/manual/en/security.database.sql-injection.php)的影响。在你的库中使用正确的卫生方法(比如'mysql_real_escape_string()'),或者切换到PDO并准备好语句。 – 2012-01-11 10:51:14
@ v01pe('!=','<>')都很好,并且相同:[<>,!= on MySQL manual](http://dev.mysql.com/doc/refman/5.0/en/比较-operators.html#operator_not-相等)。 – 2012-01-11 10:53:40