Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按价格顺序对数据库排序的单选按钮突然停止工作_Php_Html_Forms_Radio Button - Fatal编程技术网

Php 按价格顺序对数据库排序的单选按钮突然停止工作

Php 按价格顺序对数据库排序的单选按钮突然停止工作,php,html,forms,radio-button,Php,Html,Forms,Radio Button,我有一个网站,显示MySQL数据库中的旅游产品数据。上面有单选按钮供用户选择是以升序还是降序显示结果 在我把它放在一张桌子上,试图使它在页面上看起来更整洁之前,它一直工作得很好。我还必须更改“name”标记,以便它们都是相同的,这样用户就不能同时选择升序和降序选项,从而打乱查询。我认为其中一个原因是把事情搞砸了 当用户单击相应的单选按钮,然后单击旁边的搜索按钮时,它通常会按价格对项目进行完美排序。但现在它什么也做不了。如果有人能帮忙,我将不胜感激。可能是一个简单的错误 HTML: 排序方式:

我有一个网站,显示MySQL数据库中的旅游产品数据。上面有单选按钮供用户选择是以升序还是降序显示结果

在我把它放在一张桌子上,试图使它在页面上看起来更整洁之前,它一直工作得很好。我还必须更改“name”标记,以便它们都是相同的,这样用户就不能同时选择升序和降序选项,从而打乱查询。我认为其中一个原因是把事情搞砸了

当用户单击相应的单选按钮,然后单击旁边的搜索按钮时,它通常会按价格对项目进行完美排序。但现在它什么也做不了。如果有人能帮忙,我将不胜感激。可能是一个简单的错误

HTML:


排序方式:

最低价格

最高价格

PHP:


获取名称是
$\u get['priceorder']
(表示您正在使用
上的
get
方法来获取收音机。因此,您将需要类似以下内容,使用您当前的代码:

if(isset($_GET['priceorder']) && !empty($_GET['priceorder']))
{
  if ($_GET['priceorder'] == 'priceorderasc') $sql .= " ORDER BY buynow ASC";
  if ($_GET['priceorder'] == 'priceorderdesc') $sql .= " ORDER BY buynow DESC";
}

无需检查是否设置了两次,空检查只是一个备份,是可选的。

这确实是一个简单的错误

显然,在您更改元素名称之前,它们被命名为
priceorderasc
priceorderdesc
。现在您将该名称更改为
priceorder
,但不是PHP在构建查询时检查的变量。您需要更改的是:

if ($_GET['priceorder'] == 'priceorderasc') $sql .= " ORDER BY buynow ASC";
if ($_GET['priceorder'] == 'priceorderdesc') $sql .= " ORDER BY buynow DESC";

因此PHP会检查新元素名称的值。

感谢您的回复,我尝试了一下,结果在这些行上出现了一个未定义的索引错误。我尝试了下面的另一个答案,结果成功了。+1用于您的回复。:)
if(isset($_GET['priceorder']) && !empty($_GET['priceorder']))
{
  if ($_GET['priceorder'] == 'priceorderasc') $sql .= " ORDER BY buynow ASC";
  if ($_GET['priceorder'] == 'priceorderdesc') $sql .= " ORDER BY buynow DESC";
}
if ($_GET['priceorder'] == 'priceorderasc') $sql .= " ORDER BY buynow ASC";
if ($_GET['priceorder'] == 'priceorderdesc') $sql .= " ORDER BY buynow DESC";