我有这个奇怪的要求,其中两个输入过滤器将选择在两个输入框中具有列值类型的不同行。
示例代码:
Row value1 value2
1. 2 1
2. 1 3
3. 2 1
4. 1 1
5. 1 1
6. 2 1
HTML:
<input type="number" name="home1"> <input type="number" name="away1">
<input type="number" name="home2"> <input type="number" name="away2">
PHP:
//total scores 1
if(isset($_POST['home1']))
{
$home1 = $_POST['home1'];
}
if(isset($_POST['away1']))
{
$away1 = $_POST['away1'];
}
//Score 2
if(isset($_POST['home2']))
{
$home2 = $_POST['home2'];
}
if(isset($_POST['away2']))
{
$away2 = $_POST['away2'];
}
从数据库中获取值
if(!empty($home1) && !empty($away1) && !empty($home2) && !empty($away2))
{
echo "Valid inputs";
$result = $wpdb->get_results ( "SELECT * FROM `tbl_api` WHERE
(`value1` = $home1 AND `value2` = $away1) AND
(`value1` = $home2 AND `value2` = $away2)");
}
我真正想要的是一次查询两个输入字段并根据输入值显示结果。例如:如果我在第一个输入字段中放入1&amp; 2,它将显示表格行,其中列值为value1&amp; value2是1&amp; 2 ..
同时,如果我在下一个输入框中输入1&amp; 1,它将显示包含1&amp; 1列值的所有行。
总结:它应该显示列值为1&amp; 2和1&amp; 1的行(根据两列中的输入值)。
当我这样做时 - 它只显示第一个或第二个输入值的结果,而不是一次显示它们(实际上是我的要求)。
如果有人能够阐明这一点 - 会感谢自愿帮助。
答案 0 :(得分:0)
嗯,首先,永远不要信任userinput,使用PDO来处理来自用户的params。 你在查询中有逻辑错误,因为value2不能同时被赋值为1和2。
WHERE
(`value1` = $home1 AND **`value2` = $away1**) AND
(`value1` = $home2 AND **`value2` = $away2)**");
答案 1 :(得分:0)
考虑下表:
Row_ID value1 value2
1 2 1
2 1 3
3 2 1
4 1 1
5 1 1
6 2 1
现在,如果用户输入是:
home1 = 2 and away1 = 1
home2 = 1 and away2 = 1
此查询将完成此任务:
SELECT *
FROM tbl_api
WHERE (value1 = 2 AND value2 =1 )
OR
(value1 =1 AND value2 = 1);
输出结果为:
Row_ID value1 value2
1 2 1
3 2 1
4 1 1
5 1 1
6 2 1