首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一个用于升序和降序排序操作的查询字符串

一个用于升序和降序排序操作的查询字符串
EN

Stack Overflow用户
提问于 2015-09-29 09:14:20
回答 3查看 1.5K关注 0票数 0

我使用以下逻辑对从SQL数据库读取的数据进行排序-

代码语言:javascript
运行
复制
<a href='string_functions.php?sort=desc'>Sort By Type</a>
<?php  
    if( isset( $_GET['sort'] ) and $_GET['sort'] == 'desc')  {
        $query = "SELECT * FROM `function list` ORDER BY `function type` DESC";
    } else {
        #Read from Database
        $query = "SELECT * FROM `function list`";
    }
    $data_buffer = $conn -> query($query);
?>

然后我使用$data_buffer显示表function list中的元组

我想做-

代码语言:javascript
运行
复制
<a href='string_functions.php?sort=desc'>Sort By Type</a>

切换ASCDESC操作。是否可以这样做呢?

我知道我可以用两个链接-

代码语言:javascript
运行
复制
<a href='string_functions.php?sort=asc'>Sort By Type</a>
<a href='string_functions.php?sort=desc'>Sort By Type</a>

每个操作都适用于不同的操作,但是只使用一个链接就可以做到这一点吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-29 09:43:51

在CSS和代码的小模块的帮助下,我能够做到这一点。

PHP:

代码语言:javascript
运行
复制
<?php  
    if(isset( $_GET['sort'] ) and $_GET['sort'] == 'desc')
        $hide = 'hide';
    else
        $hide = '';
?>
<a href='string_functions.php?sort=desc' class="<?php echo $hide;?>">Sort By Type(DESC)</a>
<?php  
    if( isset( $_GET['sort'] ) and $_GET['sort'] == 'desc' )  {
        $query = "SELECT * FROM `function list` ORDER BY `function type` DESC";
        ?>
        <a href='string_functions.php?sort=asc'>Sort By Type(ASC)</a>
    <?php 
    } else if(isset( $_GET['sort'] ) and $_GET['sort'] == 'asc' ) { ?>
    <?php
        #Read from Database
        $query = "SELECT * FROM `function list` ORDER BY `function type` ASC";
    } else {
        $query = "SELECT * FROM `function list`";
    }
    $data_buffer = $conn -> query($query);
?>

CSS:

代码语言:javascript
运行
复制
<style>
    .hide {
        display: none;
    }
</style>
票数 0
EN

Stack Overflow用户

发布于 2015-09-29 09:32:19

我还没有测试过这段代码,但是它会帮助您,而且我使用了会话,因为它将帮助您分页,但它不是强制的,您也可以根据需要使用简单变量。

代码语言:javascript
运行
复制
<?php
  if( isset( $_GET['sort'] ) and $_GET['sort'] == 'desc')
  {
   $_SESSION['sort_type']='DESC'; //you can set using normal variable also instead of SESSION
   $_SESSION['sort_arrow']='v';
   $_SESSION['sort_link']='asc';
  }
  else
  {
    $_SESSION['sort_type']='ASC';
    $_SESSION['sort_arrow']='^';
    $_SESSION['sort_link']='desc';
  }

  $query = "SELECT * FROM `function list` ORDER BY `function type` '".$_SESSION['sort_type']."'";
  ?>
  <a href="string_functions.php?sort=<?php echo $_SESSION['sort_link'];?>">
   <?php echo $_SESSION['sort_arrow'];?>
</a>
票数 0
EN

Stack Overflow用户

发布于 2015-09-29 09:27:06

试试这个:

代码语言:javascript
运行
复制
<a href='string_functions.php?sort=desc'>Sort By Type</a>

代之以:

代码语言:javascript
运行
复制
if(isset( $_GET['sort'] ) and $_GET['sort'] == 'desc') 
    echo "<a href='string_functions.php?sort=asc'>ASC</a>";
else
    echo "<a href='string_functions.php?sort=desc'>DESC</a>";
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32840203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档