【问题标题】:PHP Query from a FORM来自 FORM 的 PHP 查询
【发布时间】:2009-04-26 06:37:23
【问题描述】:

所以我有一个表单,我发布到页面,并在表单中发布某些变量,我使用这些变量构建我的查询,然后在我的页面上调用它们。如何发布数据并构建查询并在一次通话中显示答案?

也许我的措辞不对,我正在学习这些东西,但我就是不知道。我应该先发布到中间页面吗?

示例:表单(变量 A 和 B)到-> 页面(查询中使用的 A 和 B)然后结果在同一页面上。

可以做到吗,方法是什么?

谢谢!

【问题讨论】:

  • 澄清一下:在一个页面上,您希望显示通过表单提交的数据,并显示使用提交数据的 SQL 查询的结果?
  • 如果你不想要,你甚至不需要两页。

标签: php forms


【解决方案1】:

这是基本原则,但您必须清理表单中的输入数据。例如使用mysql_real_escape_string()

但是在一个页面中你可以有这样的代码(它没有经过测试,我不能在这台电脑上):

<?php

if(isset($_POST['name']))
{
   $query = "SELECT * FROM table WHERE firstname = '"+ mysql_real_escape_string($_POST['name']) +"'";
   while($node = mysql_fetch_rows())
   {
      echo "The result: " . $node['id'];
   }
}

?>

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
   <input type="text" name="name" />
</form>

这将自行发布,运行查询并回显结果,并再次显示表单。

对于小型工具等,这是一个不错的方法,但对于较大的网站,我建议不要将请求处理代码与 html 混合。研究使用框架来应用 mvc 模式或类似的东西。

【讨论】:

  • a) 在你的答案中使用 mysql_real_escape_string() 。 b)它不适用于 + 进行连接。你需要点。否则,在一个页面上实际完成所有操作的好例子!
  • 你的权利......我已经有一段时间没有使用 PHP 了。我已编辑以反映您的 cmets。
  • 另外两个挑剔的事情:mysql_fetch_row() 不返回关联数组,mysql_fetch_assoc() 或 mysql_fetch_array() 会这样做。此外,这些函数都将 MySQL 资源作为参数。但除此之外,很好的答案。
【解决方案2】:

没有具体的例子很难写,但是很简单。

以非常基本的方式:

文件1.php:

--your form submits to file2.php--

文件2.php:

function processForm(inputs) [
  --MySql query goes here--
]

function displayResults() [
  --Process your query results--
]

processForm($_POST['vars']...);
displayResults();

这有意义吗?只需创建一个处理然后再次显示结果的函数。

如果您想变得真正花哨,您甚至可以在一个文件中完成所有操作,但如果您是第一次学习,您可能应该先掌握这项技术。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多