为什么总是跳过第一个查询并且排序不起作用?

时间:2014-01-18 13:21:06

标签: php mysql

我有以下PHP从带有2个下拉菜单和单选按钮的表单中获取数据。这个想法是下拉列表中的值决定了查询的顺序(按字段ASC或DESC排序)。但是,即使单选按钮选择1并且使用PHP变量未正确传递ORDER BY参数,代码中的第二个查询也是唯一执行的查询。我希望有人帮助我发现错误,我尝试过isset而没有它,到目前为止没有任何快乐。

database connect and select is done here...

$sortIn = $_POST['SortOrder'];
$sortBy = $_POST['OrderBy'];
$include = $_POST['Include'];

if (isset($include) && $include = "0")
{
    $myquery = 'SELECT something FROM somewhere ORDER BY "$OrderBy" "$SortOrder"' ;
    $answer=mysql_query($myquery);
    if (!$answer) {
        $message  = 'Invalid query: ' . mysql_error() . "\n";
        $message .= 'Whole query: ' . $myquery;
        die($message);
        }

    echo "some HTML"

    while($result=mysql_fetch_array($answer))
    {
echo "some HTML";
}

elseif (isset($include) && $include = "1")
    {
     $myquerytwo = 'SELECT * FROM Results ORDER BY "$OrderBy" "$SortOrder"' ;
     $answertwo=mysql_query($myquerytwo);
     if (!$answertwo) {
    $message  = 'Invalid query: ' . mysql_error() . "\n";
    $message .= 'Whole query: ' . $myquerytwo;
    die($message);
        }
        echo "some HTML";

    while($resulttwo=mysql_fetch_array($answertwo))
    {
echo "Some HTML";
}

1 个答案:

答案 0 :(得分:2)

您的条件设置不正确:)

你有:

$include = "0"

将$ include设置为0并始终返回true,因为赋值将成功。

将其更改为:

$include == "0"

同样适用于其他条件。

我还会花点时间告诉您mysql_ *库已弃用,不应再使用了。我建议使用mysqli设置。它最像mysql_ *,很容易切换到:here是文档。

有一些排序顺序:

"SELECT something FROM somewhere ORDER BY '$OrderBy' $SortOrder"