PHP MYSQL - 按钮排序asc/desc
我很困扰如何创建一个按钮,将按照升序或降序排序打印到php文件中的表中的数据。PHP MYSQL - 按钮排序asc/desc
<form name="Table Properties" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Order by Week
<button type="submit" name="sort week" class="button" value="1"> Sort Week </button>
</form>
<?php if('sort week' == true){
"SELECT * FROM `classes` ORDER BY `classes`.`week` ASC";
}
?>
这是一个简单的例子,我试图达到目标,我只是停留在php代码端。任何帮助将非常感激。
我会删除空格,然后使用$ _ POST捕捉它开始..
<form name="Table Properties" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Order by Week
<button type="submit" name="sort_week" class="button" value="1"> Sort Week </button>
</form>
<?php if($_POST['sort_week'] === true) {
"SELECT * FROM `classes` ORDER BY `classes`.`week` ASC";
}?>
sort_week will not === true ...将它改为==或===“1”,因为它会以字符串形式返回。 – 2015-02-11 23:32:12
所以真的!谢谢Kev :-) – 2015-02-11 23:36:41
你在找什么,是$ _POST数组你,提交表单的PHP脚本时或者如果您不知道它是POST还是GET方法,则使用$ _REQUEST。
<?php
if($_POST["sort week"] == 1){
$query="SELECT * FROM `classes` ORDER BY `classes`.`week` ASC";
}
?>
除了你已经回答的问题,你应该改变按钮的值,取决于假装做什么。
通常,这是按照以下顺序完成的:非排序,asc,desc。
我的意思是,列没有排序,当你第一次点击时,它得到排序的ASC,如果你再次点击,你排序它DESC,如果你再次点击你回去没有排序。
因此,在你的代码会是这样的:
<form name="Table Properties" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Order by Week
<?php
$query = "SELECT * FROM `classes` ";
$value = 0;
switch($_POST['sort_week']) {
case 1:
$value = 2;
$query .= "ORDER BY `classes`.`week` DESC";
break;
case 0:
$value = 1;
$query .= "ORDER BY `classes`.`week` ASC";
break;
default:
break;
}
?>
<button type="submit" name="sort_week" class="button" value="<?php echo $value; ?>"> Sort Week </button>
</form>
“本周排序”永远==属实,这将等于“本周排序”。这是一个字符串。 – Devon 2015-02-11 23:06:09
@Devon:Au反对。使用非空字符串的'=='与'TRUE'的松散比较将永远*为真。请参阅[PHP类型比较表](http://php.net/manual/en/types.comparisons.php#types.comparisions-loose) – eggyal 2015-02-11 23:14:13
@eggyal:touche。 – Devon 2015-02-12 00:35:26