Mysql选择动态文本字段

时间:2011-08-18 21:10:22

标签: php mysql

我正在尝试创建一个基本的搜索功能。当我提交时,我有一个id为“npa”的文本字段我希望将npa字段中的值插入到$ searchroute mysql查询中。

我对php非常陌生,所以这让我有点难过。

if ($_POST["submit"]) {

    $searchroute = "SELECT * FROM destination_route as d WHERE d.destPrefix='npa'";


    $results = mysql_query($searchroute);
    $row = mysql_fetch_array($results);
    print_r($row);

}


    ?>

<html>

    <form name="query" id="showdid" action="" method="post" enctype="multipart/form-data" >
    <input type="text" name="npa" id="npa" value="">
    <input type="submit" name="submit" id="submit" value="Submit">
    </form>

</html>

1 个答案:

答案 0 :(得分:1)

由于您已经在使用mysql_*函数,因此下面的示例代码也会使用它们。但是,您应该放弃这些功能,而是使用PDO。除此之外:

<?php
if (!empty($_POST['submit'])) {

    if (!empty($_POST['npa'])) {

        $searchroute = "SELECT * 
                        FROM destination_route as d 
                        WHERE d.destPrefix='".mysql_real_escape_string($_POST['npa'])."'";

        $results = mysql_query($searchroute);
        $row = mysql_fetch_array($results);
        print_r($row);
    }
}
?>

<html>

    <form name="query" id="showdid" action="" method="post">
    <input type="text" name="npa" id="npa" value="">
    <input type="submit" name="submit" id="submit" value="Submit">
    </form>

</html>

我所做的只是添加一些空的调用(以避免在未创建变量的情况下发出通知),将数据转发到数据库时转义(非常重要,PDO也使这更容易)并删除enctype="multipart/form-data",因为您的功能不需要(没有上传文件)。

我将我的修改保持在最低限度,以便更好地展示需要发生的基础知识。您还可以做更多的事情,例如执行额外的清理/验证输入,例如trim输入等......