我们正在 php 中使用查询对 mysql 结果进行排序。我决定使用一个变量,然后当它从前端到达查询函数时将其分成两个。下面是代码排序等于发送的示例值的示例。
$sort = 'total_amount-ASC';
$order = explode("-",$sort);
if($order[1]=='ASC'){
$query->orderAsc("'".$order[0]."'");
}else if($order[1]=='DESC'){
$query->orderDesc("'".$order[0]."'");
}
这是将代码从前端发送到 php 脚本的可接受的方式还是我应该发送两个单独的变量?
最佳答案
如果您问代码是否是处理它的好方法,那么我的答案是否定的。仅仅是因为它会失败几个单元测试:
- 如果未指定顺序或者甚至希望未指定顺序怎么办(假设 PHP 可以更快地对原始结果进行排序?)
- 当需要时,多个排序标准怎么样?
- 用户能够控制输出情况吗? “asc”和“ASC”一样有效吗?
传递这个的正确方法可能是一个数组,
Sort by: <select name="sort[]"> <option>City <option>State <option>Zip </select><br />
In <select name="order[]"><option value="">(none) <option value="ASC">A-Z <option value="DESC">Z-A </select>
迭代您的行,然后仅对字段顺序进行排序,即使该值为空,也始终会有相应的值。与桌面应用程序的方式非常相似。
关于php - 将变量发送到函数而不是发送到函数更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41560965/