从下拉列表中选择“全部”以检索所有数据

时间:2013-09-23 08:58:50

标签: php

我在下拉菜单中列出了一个国家/地区列表,选中后,将数据过滤到该国家/地区内的帖子。

问题

我在select输入框中有一个'全部'选项,但不知道如何使用PDO检索所有数据。

我遇到的问题是使用PDO绑定数据。如何配置它以便它可以接受所有值?

[注意:数据来自jquery AJAX]

代码

// HTML
<select name ="Country">
    <option value="">All</option>
    <option value="United Kingdom">United Kingdom</option>
    /* the rest **/
</select>

// PHP
// {$conn->tbl_Table} is a reference to a key linking to a value table

$fetchQ = $conn->dbConn->prepare("
    SELECT *
    FROM {$conn->table_Table}
    WHERE
    Country :Country");

$fetchQ->execute(array(
    "Country"=>$_POST['Country']
));

3 个答案:

答案 0 :(得分:0)

不要对所有国家/地区进行查询,只需从查询中删除国家/地区参数,例如

SELECT * FROM `table` WHERE `country` = 'IDHERE';

变为

SELECT * FROM `table`;

答案 1 :(得分:0)

只需使用简单的if

即可
if(!empty($_POST['Country'] ) && $_POST['Country'] != "All"){
    $fetchQ = $conn->dbConn->prepare("
      SELECT *
      FROM {$conn->table_Table}
      WHERE
      Country :Country");

    $fetchQ->execute(array(
      "Country"=>$_POST['Country']
    ));
}else{
    $fetchQ =$conn->dbConn->prepare(" SELECT * FROM {$conn->table_Table}");
    $fetchQ->execute();
}

答案 2 :(得分:0)

$SQLString = "SELECT * FROM ".$conn->table_Table;

$country_id = $_POST['Country']!="" ? 'WHERE country = '.$_POST['Country'] : '';


$fetchQ = $conn->dbConn->prepare($SQLString.$country_id)