在我的URL中使用变量来过滤数据

时间:2015-08-04 18:47:39

标签: php mysql

我在我的网址中使用了2个变量(varDept和varType)来过滤我的数据。像training.php?varDept = optical& varType = morning。我的表看起来像时间表包括会话,培训师,类型,而contact_info包括培训师,部门。

SELECT DISTINCT schedule.Session
FROM schedule LEFT JOIN contact_info ON schedule.Trainer=contact_info.Trainer
WHERE contact_info.Department LIKE varDept AND schedule.Session LIKE varType
ORDER BY schedule.Session

一切都运行正常但偶尔我有一些没有Department(VarDept)的记录,所以URL看起来像training.php?varDept =& varType = morning。我想显示可能没有varDept但仍然有Session,Trainer,Type的记录。目前它显示所有记录,包括training.php?varDept =& varType = morning。对于$ _GET ['Dept'],我的varDept目前的默认值为%。

1 个答案:

答案 0 :(得分:2)

因此检查varDept为空并在WHERE子句中省略它。 像这样:

$dept = $_GET["varDept"]

$qry = "SELECT DISTINCT schedule.Session ";
$qry .= "FROM schedule LEFT JOIN contact_info ON ";
$qry .= "schedule.Trainer=contact_info.Trainer ";
$qry .= "WHERE schedule.Session LIKE varType ";
if( strlen($dept) )
    $qry .= " AND contact_info.Department LIKE $dept";

$qry .= "ORDER BY schedule.Session";