MySQL查询表 - 不显示第一个结果

时间:2012-01-09 17:45:50

标签: php mysql

我有一个使用以下结构创建的DB(四分之一):

id_quarto  tipo_quarto  vista_quarto |
a      Single   Mar | 
b      Single   Mar |
c      Single   Mar | 
d      Single   Serra |

我希望它返回id_quarto的结果,当tipo_quarto = Single和vista_quarto = Mar时,哪些值来自表单。

所以我写下以下内容:

$strSQL = "
SELECT id_quarto 
FROM quartos 
WHERE tipo_quarto='". $_POST['tipo_quarto'] ."' 
    AND vista_quarto='". $_POST['vista_quarto'] ."'";
$rs = mysql_query($strSQL);
$row = mysql_fetch_array($rs);

然后我循环它并写入表格如下:

while($row = mysql_fetch_array($rs)) {
<?
<table border="1">
     <tr align="left">
         <td width="75"><?php echo $row['id_quarto']; ?></td>
     </tr>
</table>

这里的问题是它不返回id_quarto = a,只返回b和c。为什么这样,我该怎么做才能解决它?

感谢。

1 个答案:

答案 0 :(得分:2)

$row = mysql_fetch_array($rs);之后您还有mysql_query($strSQL);。然后在while循环中再次阅读$row(结果集中的第二行)。 所以你的代码看起来像

$strSQL = "SELECT id_quarto FROM quartos 
  WHERE tipo_quarto='". $_POST['tipo_quarto'] ."' 
  AND vista_quarto='". $_POST['vista_quarto'] ."'";
$rs = mysql_query($strSQL);
// $row = mysql_fetch_array($rs); Don't need this line!!!
while($row = mysql_fetch_array($rs)) 
{
   // output ....
}

此外,添加用于处理mysql错误的代码总是有意义的。