簡體   English   中英

從數據庫(MySQL)獲取同一列的兩行不同值的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM