PHP未定义变量错误(但它是定义的?)


PHP Undefined Variable Error (But it is defined?)

我不确定我的错误在哪里,但它说排序未定义,还有一个关于无效查询的错误:语法错误"GROUP BY Mall ORDER BY Counter DESC"àla ligne 1

以下是我关于商店展示的代码摘录。

if(isset($_GET['formSubmit'])) 
    {
        $varStats = $_GET['formStats'];
        $errorMessage = "";
            switch($varStats)
            {
            case "ByAMEX": $sort = "AMEX = 1"; break;
            case "ByBDOTerminal": $sort = "BDOTerminal = 'YES'"; break;
            case "ByResto": $sort = "Resto = 'YES'"; break;
            case "ByCashOnly": $sort = "Cash = 'YES'"; break;
            case "ByPOSNotSeen": $sort = "POSNotSeen = 'YES'"; break;
            }
            $conn = db_connect();
            sortMall($conn, $sort);
            db_disconnect($conn);
            exit();
    }

以下是我初始化排序函数的摘录:

function sortMall($conn, $sort)
{
$table = "test";
$column1 = "StoreName";
$column2 = "Mall";

$query1 = "Select $column2, Count($column1) AS Counter from $table where $sort GROUP BY $column2 ORDER BY Counter DESC"; 
$result = mysqli_query($conn, $query1);
    if ($result == FALSE)
    {
        echo "Invalid query: " . $conn->error;
        echo "<br/>";
        return;
    }

事实上,我有另一个函数,它几乎用同样的语法做同样的事情。我不知道为什么没有。

$varStats可能不是您定义的情况,请添加default情况

如果是这样,$sort没有定义,这就是的问题

试试这个

if(isset($_GET['formSubmit'])) 
    {
        $varStats = isset($_GET['formStats']) ? $_GET['formStats'] : '';
        $errorMessage = "";
            switch($varStats)
            {
            case "ByAMEX": $sort = "AMEX = 1"; break;
            case "ByBDOTerminal": $sort = "BDOTerminal = 'YES'"; break;
            case "ByResto": $sort = "Resto = 'YES'"; break;
            case "ByCashOnly": $sort = "Cash = 'YES'"; break;
            case "ByPOSNotSeen": $sort = "POSNotSeen = 'YES'"; break;
            default: $sort = 'yourvalue';// default case
            }
            $conn = db_connect();
            sortMall($conn, $sort);
            db_disconnect($conn);
            exit();
    }

可能是您的$sort没有从switch 中获取值

试试这个,

 if(isset($_GET['formSubmit'])) 
{
    $varStats = isset($_GET['formStats']) ? $_GET['formStats'] : '';
    $errorMessage = "";
    $sort = "1=1";   
        switch($varStats)
        {
        case "ByAMEX": $sort = "AMEX = 1"; break;
        case "ByBDOTerminal": $sort = "BDOTerminal = 'YES'"; break;
        case "ByResto": $sort = "Resto = 'YES'"; break;
        case "ByCashOnly": $sort = "Cash = 'YES'"; break;
        case "ByPOSNotSeen": $sort = "POSNotSeen = 'YES'"; break;
        default: $sort = 'yourvalue';// default case
        }
        $conn = db_connect();
        sortMall($conn, $sort);
        db_disconnect($conn);
        exit();
}