我有以下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";
}
答案 0 :(得分:2)
您的条件设置不正确:)
你有:
$include = "0"
将$ include设置为0并始终返回true,因为赋值将成功。
将其更改为:
$include == "0"
同样适用于其他条件。
我还会花点时间告诉您mysql_ *库已弃用,不应再使用了。我建议使用mysqli设置。它最像mysql_ *,很容易切换到:here是文档。
有一些排序顺序:
"SELECT something FROM somewhere ORDER BY '$OrderBy' $SortOrder"