1

我是 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 语句中,我想使用表单中的选定值。

例如:从剧院名称 =“表单值”的剧院中选择地址

如何在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

4 回答 4

2

您可以从中获取值$_POSTby $_POST['theater']

并且注意,你不应该直接在 sql 中使用这个值,你需要对它进行转义以防止 sql 注入。

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

最后,您可以看一下PDO,这是旧mysql_*功能的建议。

于 2012-09-17T08:13:27.377 回答
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 />";
  }
于 2012-09-17T08:16:03.977 回答
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 函数的信息。

于 2012-09-17T08:19:42.990 回答
0
$_POST["your_variable_name"] // for POST
$_GET["your_variable_name"] // for GET

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

于 2012-09-17T08:13:30.793 回答