2013-09-23 1 views
0

J'ai une liste de pays dans une liste déroulante, qui, une fois sélectionnés, filtrent les données vers les publications dans ce pays.Sélectionnez "Tous" dans la liste déroulante pour récupérer toutes les données

Le problème

J'ai une option « Tous » dans la zone d'entrée select, mais pas sûr de savoir comment s'y prendre pour récupérer toutes les données à l'aide PDO.

Le problème que j'ai est quand il s'agit de lier les données en utilisant PDO. Comment puis-je le configurer afin qu'il puisse accepter une toute la valeur?

[Note: Les données proviennent par jquery AJAX]

code

// 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'] 
)); 

Répondre

0

Il suffit d'utiliser simple if bloc

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(); 
} 
0

Au lieu de faire une requête pour tous les pays, supprimez le paramètre de pays de la requête par exemple

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

devient

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

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


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