我有一个查询,它从"用户"表中选择并过滤"vehicle_make"和"dealer_group"表。dealer_group的值为"北"、"东"、"南"和"西"。如果登录用户的值为"East",则他们只会看到具有相同"vehicle_make"和"dealer_group"的用户。
$query = "SELECT * FROM users
WHERE vehicle_make = '".$_SESSION['vehicle_make']."'
AND dealer_group = '".$_SESSION['dealer_group']."'
ORDER BY ".$order_by." LIMIT ".$start.", ".$display;
我正在尝试做的是提出一个查询,以便有人可以看到具有北,东,西,南值的所有用户,但仍会过滤掉具有单个值的其他用户。我不想将所有这些值放在数据库的表中(即"北、西、南、东"的值),但是有没有一种快速简单的方法可以做到这一点?
对于可以看到所有经销商组的用户,请将会话变量留空。然后做:
$dealer_group = empty($_SESSION['dealer_group']) ? " " : "AND dealer_group = '{$_SESSION['dealer_group']}'";
$query = "SELECT * FROM users
WHERE vehicle_make = '{$_SESSION['vehicle_make']}'
$dealer_group
ORDER BY $order_by LIMIT $start, $display";
这样,如果他们不限于特定的经销商组,它只会省略WHERE
条款的那部分。