一个数据库查询返回值的排序问题,请大家来看看! where products_id in (667,663,691,719,683,675,671,679,687,739)返回的是记录的物理顺序,并不做排序处理 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 order by products_id desc 我想用order by楼主一定是知道的,只是不用order by,为什么会这样 数据库在安装的时候,应该有一种默认的排序方式,可以选择,如果不选择,多半都是默认按照纪录的物理顺序返回了;不用Order by,就不会做其他方式的排序了。 我是楼主,感谢各位的帮忙。既然默认的方法不行,那我就想人工自己排序,我想通过这种方法来实现:一个数组,定义它的排序方式:(pid表示products_id, sid表示排序的值)$sort = array ( 0 => array('pid' => 667, 'sid' => 1), 1 => array('pid' => 663, 'sid' => 2), 2 => array('pid' => 691, 'sid' => 3), 3 => array('pid' => 719, 'sid' => 4))另一个数组就返回从数据库里查询返回的产品信息:$products = array( 0 => array('pid' => 667, 'products_name' => 0708), 1 => array('pid' => 691, 'products_name' => 0732), 2 => array('pid' => 719, 'products_name' => 0760), 3 => array('pid' => 663, 'products_name' => 0704))然后写一个函数,让$products中的内容以'pid'为关键字,按$sort中的内容来排序。想法是有了,但我还没实现它,不知道大家有什么办法来实现? 我这个是没有固定的徘序字段的,要另外计算出来,就象上面列出的products_id in (12,14,13,15,11,436,437,268)这样,因此order by group by恐怕很难实现。 <?php$sort = array ( 0 => array('pid' => 667, 'sid' => 1), 1 => array('pid' => 663, 'sid' => 2), 2 => array('pid' => 691, 'sid' => 3), 3 => array('pid' => 719, 'sid' => 4));$products = array( 0 => array('pid' => 667, 'products_name' => '0708'), 1 => array('pid' => 691, 'products_name' => '0732'), 2 => array('pid' => 719, 'products_name' => '0760'), 3 => array('pid' => 663, 'products_name' => '0704'));// 工作函数用于对$sort数组按sid排序function _sort($a,$b) { if($a['sid'] == $b['sid']) return 0; return $a['sid'] > $b['sid'] ? 1: -1;}usort($sort, '_sort'); //对$sort排序,你可任意设定sid列的值//print_r($sort);$tmp = array(); //工作数组,用于缓存对$products排序的结果//工作函数,用于在$products中查找指定元素function _find($ar, $v) { foreach($ar as $a) if($a['pid'] == $v) return $a; return "";}foreach($sort as $v) $tmp[] = _find($products, $v['pid']);$products = $tmp;print_r($products);?> PHP集成环境问题,大家进来看看啊 PHP中的=>是什么意思呢 关于PHP的初学提问 时间戳的问题 问个 smarty section 用法 PHP class construct 怎么写? php连MySQL数据库 $_GET和$_POST的区别 有邮件中前面有个复选框,选中几个,点删除按钮可以 php屏蔽百度网页,移动端搜索的来源 请问如何使得PHP得到<iframe></iframe>中的值? "界面和代码脱离"的含义是什么。
一个数组,定义它的排序方式:(pid表示products_id, sid表示排序的值)
$sort = array (
0 => array('pid' => 667, 'sid' => 1),
1 => array('pid' => 663, 'sid' => 2),
2 => array('pid' => 691, 'sid' => 3),
3 => array('pid' => 719, 'sid' => 4))另一个数组就返回从数据库里查询返回的产品信息:
$products = array(
0 => array('pid' => 667, 'products_name' => 0708),
1 => array('pid' => 691, 'products_name' => 0732),
2 => array('pid' => 719, 'products_name' => 0760),
3 => array('pid' => 663, 'products_name' => 0704))然后写一个函数,让$products中的内容以'pid'为关键字,按$sort中的内容来排序。
想法是有了,但我还没实现它,不知道大家有什么办法来实现?
$sort = array (
0 => array('pid' => 667, 'sid' => 1),
1 => array('pid' => 663, 'sid' => 2),
2 => array('pid' => 691, 'sid' => 3),
3 => array('pid' => 719, 'sid' => 4));$products = array(
0 => array('pid' => 667, 'products_name' => '0708'),
1 => array('pid' => 691, 'products_name' => '0732'),
2 => array('pid' => 719, 'products_name' => '0760'),
3 => array('pid' => 663, 'products_name' => '0704'));// 工作函数用于对$sort数组按sid排序
function _sort($a,$b) {
if($a['sid'] == $b['sid']) return 0;
return $a['sid'] > $b['sid'] ? 1: -1;
}usort($sort, '_sort'); //对$sort排序,你可任意设定sid列的值
//print_r($sort);$tmp = array(); //工作数组,用于缓存对$products排序的结果//工作函数,用于在$products中查找指定元素
function _find($ar, $v) {
foreach($ar as $a)
if($a['pid'] == $v) return $a;
return "";
}foreach($sort as $v)
$tmp[] = _find($products, $v['pid']);$products = $tmp;
print_r($products);?>