【问题标题】:PHP MYSQL - Button to SORT asc/descPHP MYSQL - 排序 asc/desc 的按钮
【发布时间】:2015-04-12 12:33:43
【问题描述】:

我比较纠结于如何创建一个按钮,它将表格中的数据按升序或降序排序打印到 php 文件中。

<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 代码方面。任何帮助将不胜感激。

【问题讨论】:

  • 'sort week' 永远不会 == true,它将等于 'sort week'。这是一个字符串。
  • @Devon:相反。使用== 将非空字符串与TRUE 进行松散比较总是为真。见PHP type comparison tables

标签: php mysql forms sorting button


【解决方案1】:

我会先删除空格,然后使用 $_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 不会 === true...将其更改为 == 或 === "1",因为它将作为字符串返回。
  • 如此真实!谢谢凯夫 :-)
【解决方案2】:

您正在寻找的是 $_POST 数组,当您将表单发布到 PHP 脚本时,或者如果您不知道它是 POST 还是 GET 方法,则使用 $_REQUEST。

<?php 
if($_POST["sort week"] == 1 ){
    $query="SELECT * FROM `classes` ORDER BY `classes`.`week` ASC";
}
?>

【讨论】:

    【解决方案3】:

    除了你已经回答的内容之外,你应该根据假装做什么来改变按钮的值。

    通常这是按顺序完成的:未排序、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>
    

    【讨论】:

      猜你喜欢
      • 2017-10-27
      • 1970-01-01
      • 2014-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      相关资源
      最近更新 更多