if else条件在sqlsrv查询中

时间:2012-03-06 18:41:28

标签: php sql

我正在为SQLSRV查询分配一个变量,该查询在ORDER BY调用中显示表信息。这是一个例子:

$fromsite = $dataConnection->SelectAllWhere( "applicants", "loan_purpose='VA Streamline' AND statusdate >= '3/1/2011'", "ORDER BY fromsite DESC" );

我想获取相同的变量($ fromsite)并执行“ORDER BY fromsite ASC”,保持所有相同的查询信息相同。我可以将它放在“if else”条件语句中吗?或者,交换机会更好用吗?

1 个答案:

答案 0 :(得分:0)

这是你要找的吗?

$fromsite = $dataConnection->SelectAllWhere( 
    "applicants", 
    "loan_purpose='VA Streamline' AND statusdate >= '3/1/2011'", 
    "ORDER BY fromsite " . ( $isAscending ? 'ASC' : 'DESC' ) 
);

我假设您有一些值(可能是$_GET参数)来决定是升序还是降序。如果$isAscending评估为true,则查询将按升序排序,否则降序。

我在那里使用的是三元运算符(?:)。您可以在PHP比较运算符页面(http://php.net/manual/en/language.operators.comparison.php)上找到它。

编辑:分配$isAscending会因传入的输入而有所不同......但这里有一些例子。

复选框 - 选中是升序,未选中是降序

$isAscending = isset( $_REQUEST['input_name'] ) ? true : false;

复选框 - 已检查是降序,未选中是升序

$isAscending = isset( $_REQUEST['input_name'] ) ? false : true;

选择下拉列表 - 值ASCDESC

$isAscending = $_REQUEST['input_name'] == 'ASC' ? true : false;

选择下拉菜单 - 0表示升序,1表示正在下降

$isAscending = $_REQUEST['input_name'] == 0 ? true : false;