十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
其实我感觉你这个逻辑没问题,代码有点问题,我是这么认为的,代码应该是这样
成都创新互联公司专注于企业营销型网站建设、网站重做改版、牟平网站定制设计、自适应品牌网站建设、成都h5网站建设、商城建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为牟平等各大城市提供网站开发制作服务。
$idzhi = rand(0,表中数据条数);
$data = $data['id']; // 我不明白你这里是什么意思
$arr = $m-where($data = $idzhi)-limit(8) -select();
不过我总感觉上面的有问题
$idzhi = rand(0,表中数据条数);
$arr = $m-where("id = $idzhi")-limit(8) -select();
不对的话就试试这个,我个人觉得这样是对的,不明白你那个$data['id'];是干嘛用的
这个如果想要性能的话,就用下面的sql语句实现:
select orderNo from (select (@rowNum:=@rowNum+1) orderNo , xuehao,cishu from record,(Select (@rowNum :=0) ) b
order by cishu desc)t where t.xuehao=112
然后php获得这条结果数组,取第一个元素即是排序
如果对这个sql语句有疑问,不明白,可以使用一个比较耗费性能的方法:
select xuehao,cishu from record order by cishu desc
执行这条语句,获得一个数组$res
遍历前设置一个记录排序的标识 $seq=1;
for(...){
$xuehao=$res['xuehao'];//把第seq 个位置的学号拿出来,跟想要的学号比
if($xuehao==112){
break;
}
$seq++;
}
//如果 这个排序标识比结果集数组大小还大,说明没这个学号的记录,否则,就是这个学号打卡次数的排序。
$seq就是排序
mysql中没有类似Oracle中rownum序号的功能,所以查询数据的行序号需要自己实现。
假设问题中数据表的名字为goods,则所需sql语句如下:
SELECT @rownum := @rownum + 1 AS rownum,goods.* FROM ( SELECT @rownum := 0 ) r,goods ORDER BY rownum ASC
上述语句可以获取每条数据的行号并升序排列。
先根据票数倒序查询票数表,sql语句大概是
"SELECT 学生id,票数 FROM 票数表 ORDER BY 票数 DESC";假设得到的结果集赋值为 $res,
再用PHP遍历,
$student = array();
foreach ($res as $key = $value) {
$student[$value['学生id']] = $key +1;
}
最后就可以得到student排名数组,键是学生的id,值就是学生的排名。
sort($arr);由小到大的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
rsort($arr);由大到小的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
是分页么
下面是我的笔记,可以参考下
分页原理
三个变量
1、总数据量 $total--- select count(*) from goods;
2、每页显示多少条 $perpage
3、当前是第$page页
两个公式
总页数 = ceil($total/$perpage);($total+$perpage-1) /$perpage
当前页取多少那些数据
limit $offset,N
$offset = ($page-1) * $perpage;
N = $perpage;
三个系统函数
$url = $_SERVER['REQUEST_URI'];//获取地址 ---- /20120411/test.php$arr = parse_url($url); //以数组的形式返回 Array ( [path] = /20120411/test.php [query] = id=3pid=1 ) $path = $arr['path'];$str = $arr['query']; //返回?后面的内容形如:id=3pid=1parse_str($str,$data); //Array ( [id] = 3 [pid] = 1 )//把$str字符串按符号来分割成$data数组$str = $path.'?'.http_build_query($data); //把$data数组按符号拼接成形如id=3pid=1字符串