我有这个HTML表单,我有多个输入元素:文本,广播等。这些是作为选项,在SQL查询中应用的条件项,以便从数据库中提取更多特定数据。
例如,第一个输入字段是文本框,第二个是单选按钮,第三个是带有两个选项的SELECT。首先,我将在SQL查询中添加 LIKE%name%句子。第二个是一个单选按钮组,比如一个颜色,所以我会添加一个 WHERE color = $ item ,将选择的一个与数据库列进行比较。第三个就像第二个一样。
现在,我想我可以使用 if 句子来比较这三个项目,以便知道要添加到SQL查询中的哪一个,但我的问题是:是否有更聪明这样做的方法?就像一个数组检查是否设置了这些变量(我在这里仍然使用 if ,所以没关系)。
我不时编写简单的东西,因为我从来没有做过任何相当复杂的事情,但有时候,即使对于简单的事情,无论我多么努力地设计某些东西,我都不能。
在这种情况下,我真的无法想象(想象,可视化)我将如何构建PHP代码以及SQL查询,以便将这三个条件添加到 WHERE 子句
如果你能在这里帮助我,我将不胜感激。如果您需要更多详细信息,请告诉我。
答案 0 :(得分:1)
你可以随时构建你的sql语句。
一个简单的例子:
$sql = "SELECT ... WHERE 1=1"; // 1=1 is just an example to get the WHERE out of the way
if (first condition / certain $_POST variable is set)
{
$sql .= " AND LIKE %...%";
}
if (second condition)
{
$sql .= " AND something=...";
}
// etc.
// run query
答案 1 :(得分:1)
仅为添加其他解决方案,我建议您使用存储过程。
http://www.mysqltutorial.org/mysql-stored-procedure-tutorial.aspx
http://www.brainbell.com/tutorials/MySQL/Using_Stored_Procedures.htm
您只需要将值传递给sp并在其中生成where条件。
还有另一个选项可以在PHP中生成参数化查询以防止SQL注入。
以下是此主题的一些链接。
http://us2.php.net/manual/en/security.database.php
http://www.roscripts.com/PHP_MySQL_by_examples-193.html