Create a dynamic mysql query using php variables Create a dynamic mysql query using php variables sql sql

Create a dynamic mysql query using php variables


Just check if the variables contain a value and if they do, build the query like so:

unset($sql);if ($stationFilter) {    $sql[] = " STATION_NETWORK = '$stationFilter' ";}if ($verticalFilter) {    $sql[] = " VERTICAL = '$verticalFilter' ";}$query = "SELECT * FROM $tableName";if (!empty($sql)) {    $query .= ' WHERE ' . implode(' AND ', $sql);}echo $query;// mysql_query($query);


$filter = array();if ($_GET['station'] != ''){ $filter[] = 'STATION_NETWORK = '.$_GET['station'];}if ($_GET['vertical'] != ''){ $filter[] = 'VERTICAL = '.$_GET['vertical'];}if ($_GET['creative'] != ''){ $filter[] = 'CREATIVE  = '.$_GET['creative'];}if ($_GET['week'] != ''){ $filter[] = 'WK = '.$_GET['week'];}$query = 'SELECT * FROM $tableName WHERE '.implode(' AND ', $filter);$result = mysql_query($query);... 

but better if in GET you pushed name of tables rows; $_GET['STATION_NETWORK'] --- some like this;

then you makeforeach ($_GET as $key => $value){    if ($value != '')    { $filter[] = $key.' = '.$value;}}

or try

$filter = array('STANTION_NETWORK' => $_GET['station'],                'VERTICAL' => $_GET['vertical'],                 'CREATIVE'  => $_GET['creative'],                 'WK' => $_GET['week']);$query_array = array(); foreach ($filter as $key => $value){    if ($value != '')    { $query_array[] = $key.' = '.$value;}}$query = 'SELECT * FROM $tableName WHERE '.implode(' AND ', $query_array);$result = mysql_query($query);