$ _GET变量在传递时查询不起作用

时间:2014-05-22 15:04:35

标签: php mysql

如果通过URL传递变量,我使用以下内容为变量赋值:

if (!empty($_POST)) {
    $sortBy = isset($_GET['sort']) ? $_GET['sort'] : 'mgap_ska_id';
}

这里是传递变量的地方:

$result = "SELECT mgap_ska_id, mgap_ska_id_name, SUM(DISTINCT mgap_growth) as growthtotal, SUM(DISTINCT mgap_recovery) as recovery FROM mgap_orders "
        . "WHERE account_manager_id = '" . $_SESSION['account_manager_id'] . "' GROUP BY mgap_ska_id ORDER BY '".$sortBy. "' ";

如果变量未被传递,则该过程正常工作,但是当通过链接传递时,查询中的变量将被取消分配:

<a href = "customer_view.php?sort=mgap_ska_id_name">

任何人都可以看到我的错误在哪里吗?

仅供参考我在查询中使用和不使用引号进行了尝试。

使用解决方案进行编辑:

以下是我解决问题的方法:O检查POST和GET:

 if (!empty($_GET) || !empty($_POST)) {
    $sortBy = isset($_GET['sort']) ? $_GET['sort'] : 'mgap_ska_id';
}  else {
$sortBy = 'mgap_ska_id';    
}

2 个答案:

答案 0 :(得分:3)

来自OP的comments

  

页面需要检查POST,因为它可以从中接收   另一个入口点,但发送变量的URL是相同的   page.I必须检查变量是否存在的URL。 -

然后使用$_REQUEST

if (!isset($_REQUEST)) {

答案 1 :(得分:1)

if (!empty($_POST)) {

这一行是你的问题。如果用户点击链接,那就是获取请求,意味着$ _POST为空。