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