[英]Fetch two rows of different values of the same column from database (MySQL)
我有一個奇怪的要求,其中兩個輸入過濾器將選擇在兩個輸入框中具有列值類型的不同行。
樣例代碼:
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&2,它將顯示表行,其中value1&value2的列值為1&2。
同時,如果我在下一個輸入框中輸入1&1,它將顯示包含1&1列值的所有行。
總結:應該顯示列值分別為1&2和1&1的行(根據兩列中的輸入值)。
當我這樣做時-一次只顯示第一個或第二個輸入值的結果,而不是兩個都顯示(這實際上是我的要求)。
如果有人可以闡明這一點-將不勝感激。
好吧,起初,不要信任用戶輸入,請使用PDO處理用戶的參數。 您在查詢中存在邏輯錯誤,因為value2不能同時設為1和2。
WHERE
(`value1` = $home1 AND **`value2` = $away1**) AND
(`value1` = $home2 AND **`value2` = $away2)**");
考慮此表:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.