2012-01-11 86 views
-1

可能重复:
mySQL query multiple - returns error mysql_fetch_array的MySQL查询 - 仍返回错误mysql_fetch_array

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

房间:

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='". 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是资源,布尔”。

这是为什么,我能做些什么来防止它?我如何编写正确的代码?

此外,我希望结果以选择(列表/菜单)表单项为特色,以便用户只能选择有效的结果。任何想法如何将记录集的结果与此功能结合?

+1

你还没有使用'mysql_query()',是吗? – 2012-01-11 11:43:43

+0

查询中的''SELECT id_quarto''应该指'quartos.id_quarto'还是'reservas.id_quarto'?而且这个查询甚至没有指定?!你在哪里执行查询? – 2012-01-11 11:45:11

+0

复制http://stackoverflow.com/questions/8817940/mysql-query-multiple-returns-error-mysql-fetch-array。 – 2012-01-11 11:45:42

回答

1

你错过了

$rs=mysql_query($strSQL) 

Ofcourse立即

// Loop the recordset $rs 
+0

$ rs = mysql_query($ strSQL);已经包括了。抱歉。仍然没有工作。 – SerafimSaudade 2012-01-11 11:48:06

+0

下一步:执行“echo $ strSQL;”在“$ rs = mysql_query($ strSQL);”之前,将SQL复制到MySQL命令行客户端并发布结果。 – 2012-01-11 11:50:49

0

严格之前,你应该说:

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

// Proceed with while loop 

} else echo mysql_error(); 

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