我有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