如何为2个字段使用WHERE和AND?

时间:2013-09-16 18:42:34

标签: php mysql sql forms

我在使用时遇到错误 - 我认为是问题,mysql_fetch_assoc。

<?php
$buildingNames = $_POST['buildingName'];
$roomId = $_POST['roomId'];

$sql = mysql_query("SELECT *
                      FROM forestcourt 
                     WHERE buildingName=$buildingNames AND 
                           id=$roomId");

$id2 = 'id';
$buildingName = 'buildingName';
$subBuildings = 'subBuildings';
$imagePath = 'imagePath';
$description = 'description';

$rows2 = mysql_fetch_assoc($sql);
echo 'Name: ' . $rows2[$buildingName] . '<br/>' . 'Room Number: ' . $rows2[$id2]
     . '<br/>' . 'Sub Buildings: ' . $rows2[$subBuildings] . '<br/>'
     . 'Description: ' . $rows2[$description] . '<br/>' . 'Location: ' 
     . '<img src="../' . $rows2[$imagePath] . '"/>' . '<br/><br/>';
?>

上面的代码就是我用来从这个页面之前的页面获取表单数据的内容;

    <Form name ="form1" Method ="POST" Action ="result.php">

       Building Name: <INPUT TYPE = "TEXT" Name ="buildingName">
       Room Number: <INPUT TYPE = "TEXT" Name ="roomId">
       <INPUT TYPE = "Submit" Name = "Submit" VALUE = "Go">

    </FORM>

网站的目的是使用表单中的$ _POST,并使用FORM ACTION属性将其发送到results.php页面。

然而,当它运行时,它会出现错误说;

  

警告:mysql_fetch_assoc():提供的参数不是有效的MySQL   结果资源   /websites/123reg/LinuxPackage23/ed/ge/_g/xxx.co.uk/public_html/testing/result.php   在第52行

第52行是;

$rows2 = mysql_fetch_assoc($sql);

指的是;

$sql = mysql_query("SELECT * 
                      FROM forestcourt 
                     WHERE buildingName=$buildingNames AND 
                           id=$roomId");

所以我认为我的SELECT语句出了问题?

我对SQL很陌生,所以我看不出它有什么问题。

数据库已连接并确实从表中获取结果。 字段的名称也是正确的。

如果有人能指出任何事情或帮助那将是伟大的。

1 个答案:

答案 0 :(得分:1)

WHERE buildingName='$buildingNames' AND id='$roomId'

周围使用单引号

另外要避免SQL注入使用

buildingName='" .
mysql_real_escape_string($buildingNames) . "' AND id='" .
mysql_real_escape_string($roomId) . "'"