我有一个包含许多表的数据库。我还有一个连接到它的基于网络的应用程序。现在我正在使用准备好的查询。
我正在尝试创建一个通用查询,该查询将能够从不同的表中获取可变数量的输入列。 (基本上,用户选中创建我需要传递给查询的 php 变量的复选框)。
如果我知道需要 2 列,这很简单,我只需要做类似的事情,
SELECT $col1, $col2 FROM $table1 INNER JOIN $table2;
如何更改它以便可以在查询中输入任意数量的变量?
提前致谢,
佐姆
编辑:我想我可以在 PHP 或 switch 中执行 if/else 条件,每个案例将对应于多个输入列,并且每个案例都有其查询。但这会处理很多情况(例如,用户可以单击 10 个框),而且这样做似乎并不正确。而且,将来如果我需要更多的案例,我将不得不更改代码,但我宁愿不必这样做。
最佳答案
我假设您的表单元素名称是您正在查找的表字段。如果是这种情况,您可以循环浏览该帖子来构建您的字段表。我不确定你如何将变量设置为具有 2 个值...
$_POST['field1'] = "true";
$_POST['field2'] = "true";
$_POST['field3'] = "false";
$_POST['field4'] = "true";
$fields = "";
foreach ($_POST as $key => $value)
{
$fields .= $key . ",";
}
最终结果是
$fields = "field1,field2,field4,";
现在你必须删除最后一个逗号,
$fields = substr($fields,0,-1);
那么你就可以:
$query = "SELECT " . $fields . " from table1...and so on.
关于php - 创建具有多个列和表变量的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22004506/