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

标签 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';    
}

最佳答案

来自 OP 的 comments

The page needs to check for a POST because it can receive such from another entry point, but the URL sending the variable is on the same page.I have to check the URL for the existence of the variable. –

然后利用$_REQUEST

if (!isset($_REQUEST)) {

关于php - $_GET 变量是查询在传递时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23810564/

相关文章:

mysql - 返回 MySQL 中每个 'last' 的 'group by' 行

php - Mysql不同的排序顺序

mysql - 列计数与第 1 行的值计数不匹配

php - 如何在php中回显循环并将其放入变量中?

php - 在 CodeIgniter 的 DATE_FORMAT sql 中必须使用 FALSE

php - Android:如何使用参数从mysql获取数据到sqlite

mysql - 使用聚合函数生成的列

javascript - 如何自动更新输出

php - 在使用 PHP 进行部署期间如何处理库依赖性?

php - 如何通过php和mysql上传图像文件