Smarty - 如何将我的表单中的值添加到mysql查询?

时间:2014-11-18 14:39:02

标签: php html mysql smarty

我不知道如何使用smarty将值从表单传递给mysql查询。

代码body.tpl:

<form action="" name="training" id="training">
  <select name="city">
    <option value="ostrava">Ostrava</option>
  </select>
  <input type="text" name="date_start" id="date_start" value="" />
  <input type="submit" />
</form>

Mysql查询:

SELECT * FROM table WHERE city="<value from city>" AND date_start="<value from date_start>"; 

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式使用smarty访问POST数据:$smarty.post.[name]

"<value from city>"所在位置..'".$smarty.post.city."'..

代替"<value from date_start>"位于..'".$smarty.post.date_start."'..

请注意,您要序列化输入。这假设您的查询包含在"..."双引号中。例如,整个查询看起来像这样:

"SELECT * FROM table WHERE city='".$smarty.post.city."' AND date_start='".$smarty.post.date_start."'"

您需要告诉您表单以查找POST值。只需添加method='post'

<form ... method="post">
    ...
</form>

请注意,您也可以使用GET,但POST更安全,因为用户无法在网址中对其进行更改。

答案 1 :(得分:0)

$smarty.get.city。如果您使用的是post方法,那么$smarty.post.city

与smarty无关。

$sql = "SELECT * FROM table"
. " WHERE city='" . $smarty.get.city . "'"
. " AND date_start='" . $smarty.get.start_date . "'";

注意:通过转义变量来避免sql注入。

请参阅:http://www.smarty.net/forums/viewtopic.php?p=75542

但我建议你在PHP方面做,而不是在模板中。