Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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和GET方法进行排序?_Php_Sorting_Methods_Get - Fatal编程技术网

使用PHP和GET方法进行排序?

使用PHP和GET方法进行排序?,php,sorting,methods,get,Php,Sorting,Methods,Get,我正在尝试使用链接和GET方法对它们进行排序。我将首先提供代码,然后解释我试图实现的目标。使用AJAX并使其动态(我想?)可能有更好的方法,但我想先从这个开始 代码: if(isset($_GET['order'])){$order = $_GET['order'];}else{$order = 0;} if(isset($_GET['field'])){$order_field = $_GET['field'];} switch($order) { case 0:

我正在尝试使用链接和
GET
方法对它们进行排序。我将首先提供代码,然后解释我试图实现的目标。使用AJAX并使其动态(我想?)可能有更好的方法,但我想先从这个开始

代码:

if(isset($_GET['order'])){$order = $_GET['order'];}else{$order = 0;}
if(isset($_GET['field'])){$order_field = $_GET['field'];}

switch($order)
{
    case 0: 
        $order_next = "DESC";
        break;
    case "DESC":
        $order_next = "ASC";
        break;
    case "ASC":
        $order_next = 0;
        break;
}
稍后,在HTML页面中,我有以下代码片段:

<? 
if($order == 0)
{
    printf("<a href='admin.php?field=lastname&order=%s'>Last</a>
    ", $order_next);
}
else
{
    printf("<a href='admin.php?field=%s&order=%s'>Last</a><a class='sort_desc' href='admin.php?field=%s&order=%s'></a>
    ", $order_field, $order_next, $order_field, $order_next);
}
?>

好的。我有一个链接Last,它应该有3个位置,默认、描述顺序、ASC顺序。
当我单击它一次时,它应该通过GET方法发送,我单击的字段是“Lastname”字段,我需要下一个位置(从默认位置(无排序)到下一个位置(本例中为DESC))。我不能很好地理解代码中的错误,或者我不理解一些东西,页面不是正确地重新加载了吗?当我单击链接时,会从GET方法读取
$order
$order\u字段
,但是不会发生任何其他情况。由于某种原因,
开关不起作用,
$order\u next
不会更改为新值,并且只有1个链接,而不是2个:
默认值:链接“最后” 链接“最后一个”+链接三角形图片指向下方


如果我不能很好地解释这一点,我很抱歉,但我试过了。谢谢你抽出时间

案例0:
更改为
案例“0”:
世界上一切都会好起来:-)

这是因为交换机使用

要了解原因,只需运行以下代码并查看结果:

var_dump("DESC" == 0);

将测试比较更改为:

if($order == 0)


您的Switch语句每次都会在案例0中被捕获。如果您将代码中的0更改为“0”,如下所示:

$order = "0";
case "0":
if($order == "0")

它将按计划工作:)

是的,这已经使它的一部分工作!非常感谢你!附言:第二部分也起作用了@Arno-我宁愿你做一个
if($order==“0”)
,这就回答了第二个问题。非常感谢你!
$order = "0";
case "0":
if($order == "0")