如何在php函数中使用表单值?

时间:2012-09-17 08:11:27

标签: php mysql html

我是php的新手。我使用php编写了自动完成文本框,我有一个提交按钮。我还没有给出表格动作。

这是我用于自动填充文本框的HTML表单代码。此自动填充文本框选择值

<form  method="post" autocomplete="off">
    <p>
        <b>Theater Name</b> <label>:</label>
        <input type="text" name="theater" id="theater" />
    </p>
    <input type="submit" value="Submit" />
</form>

我有另一个php函数,它根据where子句检索值。在where语句中我想使用表单中的选定值。

for ex:从剧院中选择地址,其中theater_name =“表格价值”

如何在php函数中使用表单值?任何人都可以帮助我吗?

 <?php
$con = mysql_connect("localhost","root");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("theaterdb", $con);

$result = mysql_query("SELECT * FROM theter
WHERE theater_name="<!-- This could be value that we get after clicking submit button-->);

while($row = mysql_fetch_array($result))
  {
  echo $row['thearer_name'];
  echo "<br />";
  }
?> 

提前致谢......

4 个答案:

答案 0 :(得分:2)

您可以通过$_POST获取$_POST['theater']的值。

请注意,你不应该直接在sql中使用这个值,你需要将其转义以防止sql注入。

$theater = mysql_escape_string($_POST['theater']);
$result = mysql_query("SELECT * FROM theter WHERE theater_name='$theater'";

最后,您可以查看PDO,这是通过旧的mysql_*函数建议的。

答案 1 :(得分:1)

首先,尝试使用mysqli而不是mysql(mysqli_query,mysqli_connect)。使用它有许多安全/速度优势,它具有几乎完全相同的功能。

虽然上面的答案提到使用$ _POST ['theater'](输入的名称),但在将其放入查询之前,请务必先删除帖子。

$con = mysqli_connect("localhost","root", "YOUR PASSWORD HERE", "YOUR DATABASE HERE");
if (!$con)
  {
  die('Could not connect: ' . mysqli_error());
  }

 // No need for this, please see the updated mysqli_connect as the 4th parameter selects your DB
 //mysqli_select_db("theaterdb", $con);

// Please notice the last parameter of the mysqli_real_escape_string is your Input's POST
$query = "SELECT * FROM theater WHERE theater_name=".mysqli_real_escape_string($con, $_POST['theater']);

$result = mysqli_query($con, $query);

while($row = mysqli_fetch_array($result))
  {
  echo $row['thearer_name'];
  echo "<br />";
  }

答案 2 :(得分:1)

首先,将提交按钮代码更改为以下内容:

<input name="submit" type="submit" value="Submit" />

现在,这是您应该用于查询的代码:

<?php
if (isset($_POST['submit'])) {
    $con = mysql_connect("localhost","root");
    if (!$con)
    {
        die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("theaterdb", $con);

    $result = mysql_query("SELECT * FROM theater
    WHERE theater_name='" . mysql_real_escape_string($_POST['theater']) . "'");

    while($row = mysql_fetch_array($result))
    {
        echo $row['theater_name'];
        echo "<br />";
    }        
}

首先,我检查用户是否提交了表单。然后,我将他提交的数据转义并将其插入到您的查询中。

* 注意:我写的所有内容都是基于在提交表单后执行代码的假设。

* 另一个注意:您应该阅读有关使用PDO而不是MYSQL函数的信息。

答案 3 :(得分:0)

$_POST["your_variable_name"] // for POST
$_GET["your_variable_name"] // for GET

有关详细信息,请访问:http://www.php.net/manual/en/language.variables.external.php