Rumah > Soal Jawab > teks badan
Jadual jenis peperiksaan jx_exam_type, kandungan boleh ditambah di latar belakang
Jadual markah peperiksaan jx_result, kandungan boleh ditambah di latar belakang
Id_peperiksaan dalam jadual markah peperiksaan pertengahan penggal sepadan dengan id dalam jadual jenis peperiksaan, iaitu sama ada markah yang ditambah adalah milik pertengahan atau akhir
Kemudian tanya menggunakan php
$sql="SELECT re.type, re.score, re.exam_id, et.title, DATE_FORMAT(et.addtime, '%Y-%m-%d') AS etime FROM jx_result AS re LEFT JOIN jx_exam_type AS et ON re.exam_id = et.id WHERE re.uid = '$uid' ORDER BY et.addtime DESC";
$result=$db->query($sql);
while($row=$result->fetch_assoc()){
$arr[]=$row;
}
echo json_encode($arr);
Format output adalah seperti berikut
[
{
"type": "语文",
"score": "91",
"exam_id": "2",
"title": "三年级期末考试",
"etime": "2017-06-02"
},
{
"type": "英语",
"score": "89",
"exam_id": "2",
"title": "三年级期末考试",
"etime": "2017-06-02"
},
{
"type": "数学",
"score": "60",
"exam_id": "2",
"title": "三年级期末考试",
"etime": "2017-06-02"
},
{
"type": "数学",
"score": "91",
"exam_id": "1",
"title": "三年级期中考试",
"etime": "2017-05-25"
},
{
"type": "语文",
"score": "85",
"exam_id": "1",
"title": "三年级期中考试",
"etime": "2017-05-25"
},
{
"type": "英语",
"score": "87",
"exam_id": "1",
"title": "三年级期中考试",
"etime": "2017-05-25"
}
]
Sila beritahu saya cara menukar format json output di atas kepada format berikut
{
"title": "三年级期中考试",
"etime": "2017-05-25",
"exam_id": [
{
"type": "数学",
"score": "91",
"exam_id": "1"
},
{
"type": "语文",
"score": "85",
"exam_id": "1"
},
{
"type": "英语",
"score": "87",
"exam_id": "1"
}
],
"title": "三年级期末考试",
"etime": "2017-06-02",
"exam_id": [
{
"type": "语文",
"score": "91",
"exam_id": "2"
},
{
"type": "英语",
"score": "89",
"exam_id": "2"
},
{
"type": "数学",
"score": "60",
"exam_id": "2"
}
]
}
Selepas tukar kepada format di atas, keluarkan ke meja depan, dan keluarkan ke html melalui JS
(Mungkin ada yang tidak kena dengan format yang saya ingin tulis, tetapi maksud umum adalah untuk mengklasifikasikan data asal mengikut exam_id dan kemudian keluarkannya)
Saya sedang belajar, dan saya tidak memahami banyak perkara dengan baik Tolong beri saya nasihat~~Terima kasih
女神的闺蜜爱上我2017-06-07 09:25:20
Ini adalah seni bina yang saya faham, jadi bahagian depan sepatutnya boleh melintasi ke
while ($row = $result->fetch_assoc()) {
$scorearr = array("type" => $row["type"], "score" => $row["type"], "exam_id" => $row["exam_id"]);
if (isset($arr[$row["exam_id"]])) {
$arr[$row["exam_id"]]["exam_id"][] = $scorearr;
} else {
$arr[$row["exam_id"]]["title"] = $row["title"];
$arr[$row["exam_id"]]["etime"] = $row["etime"];
$arr[$row["exam_id"]]["exam_id"][0] = $scorearr;
}
}
$result = array();
foreach($arr as $val) {
$result[] = $val;
}
echo $json_encode($result)
阿神2017-06-07 09:25:20
Ia sepatutnya kurang satu pakej Anda boleh melintasi tatasusunan anda, dan kemudian anda boleh mendapatkan apa yang anda mahu, dan kemudian hanya mengubah kodnya dalam json
.滿天的星座2017-06-07 09:25:20
Ada yang salah dengan logik anda mendapatkan dan memproses data, tetapi anda juga boleh menulis
<?php
$str = '[
{
"type": "语文",
"score": "91",
"exam_id": "2",
"title": "三年级期末考试",
"etime": "2017-06-02"
},
{
"type": "英语",
"score": "89",
"exam_id": "2",
"title": "三年级期末考试",
"etime": "2017-06-02"
},
{
"type": "数学",
"score": "60",
"exam_id": "2",
"title": "三年级期末考试",
"etime": "2017-06-02"
},
{
"type": "数学",
"score": "91",
"exam_id": "1",
"title": "三年级期中考试",
"etime": "2017-05-25"
},
{
"type": "语文",
"score": "85",
"exam_id": "1",
"title": "三年级期中考试",
"etime": "2017-05-25"
},
{
"type": "英语",
"score": "87",
"exam_id": "1",
"title": "三年级期中考试",
"etime": "2017-05-25"
}
]';
$arr = json_decode($str,true);
$result = [];
$examId = [];
foreach($arr as $key=>$val){
if(!isset($result[$val['exam_id']])){
$result[$val['exam_id']]['title'] = $val['title'];
$result[$val['exam_id']]['etime'] = $val['etime'];
}
$result[$val['exam_id']]['exam_id'][] = array("type"=>$val['type'],"score"=>$val['score'],"exam_id"=>$val['exam_id']);
}
echo json_encode(array_values($result));
Namun, kaedah anda mendapatkan data tidak disyorkan Jika data itu rumit dan besar, ia akan menyusahkan untuk diproses.
.