我是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 />";
}
?>
提前致谢......
答案 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