虚心求教,请问如何将从两个表联合查询出来的三条数组拼接成一条
以上是分别两个表,其中第二个表中exam_type字段对应的第一个表中的id,也就是这三科成绩属于三年级其中考试这个考试类型的。
$sql=”select re.id, re.uid, re.score, re.note, re.type, et.title, date_format(et.addtime, ‘%y-%m-%d’) as time from jx_result as re left join jx_exam_type as et on re.exam_type = et.id where re.uid = ‘$uid’ order by et.addtime desc”;
$result=$db->query($sql);
while($row=$result->fetch_assoc()){
$arr[]=$row;//将取得的所有数据赋值给arr数组
}
echo json_encode($arr);//输出json
以上是联合查询语句,这样查询出来的,是三条数组,以下
请问如何以exam_type为主要的区分,将这三条数组合并成一个数组呢? 合并出来后前端js识别用.html插入到页面中。
期望插入后效果
回复讨论(解决方案)
你又没有查出 exam_type
讲思路。
重新创建一个数组,遍历结果,以exam_type为key,将三种成绩作为value。 如果key存在就在值上添加,如果key不存在就创建这个key,并将值写入。噢啦
讲思路。
重新创建一个数组,遍历结果,以exam_type为key,将三种成绩作为value。 如果key存在就在值上添加,如果key不存在就创建这个key,并将值写入。噢啦
目前对于数组这方面的还在学习中,感谢回复,希望能不吝赐教,有点莫不着头脑,谢谢
$sql=”select re.id, re.uid, re.score, re.note, re.type, et.title, date_format(et.addtime, ‘%y-%m-%d’) as time from jx_result as re left join jx_exam_type as et on re.exam_type = et.id where re.uid = ‘$uid’ order by et.title,et.addtime desc”;
$result=$db->query($sql);
while($row=$result->fetch_assoc()){
if($exam_type!=$row[“title”]){
$exam_type = $row[“title”];
}
$arr[$exam_type][]=$row;//将取得的所有数据赋值给arr数组
}
echo json_encode($arr);//输出json
$sql=”select re.exam_type, re.id, re.uid, re.score, re.note, re.type, et.title, date_format(et.addtime, ‘%y-%m-%d’) as time from jx_result as re left join jx_exam_type as et on re.exam_type = et.id where re.uid = ‘$uid’ order by et.addtime desc”;
$result=$db->query($sql);
while($row=$result->fetch_assoc()){
if(!isset($arr[$row[‘exam_type’]])){
$arr[$row[‘exam_type’]] = array();
$arr[$row[‘exam_type’]][] = $row;
}else{
$arr[$row[‘exam_type’]][]=$row;//将取得的所有数据赋值给arr数组
}
}
echo json_encode($arr);//输出json