IONI C 5: как сгруппировать массив в json php из базы данных - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть такой исходный код в php json

elseif($postjson['aksi']=='load_Kelas'){
  $data = array();
  $query = mysqli_query($mysqli, "SELECT * FROM t_kelas_kuliah");
  while($row = mysqli_fetch_array($query)){
      $data[] = array(
          'kd_kelas'    => $row['kd_kelas'],
          'kd_matkul'   => $row['kd_matkul'],
          'kd_dosen'    => $row['kd_dosen'],
          'waktu'       => $row['waktu'],
          'ruang'       => $row['ruang'],
          'hari'        => $row['hari'],
      );
  }
  if($query) $result = json_encode(array('success'=>true, 'result'=>$data));
  else $result = json_encode(array('success'=>false));
  echo $result;
}

в ионном c код

async loadKelas() {
    return new Promise(resolve => {
      let body = {
        aksi: 'load_Kelas',
      };

      this.accsPrvds.postData(body, 'proses_api.php').subscribe((kelas: any) => {
          for (let kelaskuliah of kelas.result) {
              this.datakelas.push(kelaskuliah);
          }
          resolve(true);
          console.log(kelas);
      });
    });
  }

консоль результата

result: (2) […]
​​
0: {…}
​​​
hari: "Senin"    ​​​
kd_dosen: "SPK"
​kd_kelas: "A1157"
​​​kd_matkul: "IFKK1051"
​​​ruang: "B310"
​​​waktu: "09.30 - 12.00"
​​​<prototype>: Object { … }
​​1: {}
​​​hari: "Senin"
​​​kd_dosen: "SPK"
​​​kd_kelas: "A1158"
​​​kd_matkul: "IFKK1051"
​​​ruang: "B310"
​​​waktu: "12.00 - 14.30"

как создать массив по категории 'Хари', тогда у меня есть вывод, как это

Data = [
  {
    Hari : "Senin",
    Kuliah = [
     { kd_dosen: "SPK", kd_kelas: "A1157", kd_matkul: "IFKK1051", ruang: "B310", waktu: "09.30 - 12.00" },
     { kd_dosen: "SPK", kd_kelas: "A1157", kd_matkul: "IFKK1051", ruang: "B310", waktu: "09.30 - 12.00" }
    ]}
]}

Может кто-нибудь мне помочь ??? Похоже, ваш пост в основном кодовый; пожалуйста, добавьте еще некоторые детали. Похоже, ваш пост в основном кодовый; пожалуйста, добавьте еще некоторые детали. Похоже, ваш пост в основном кодовый; пожалуйста, добавьте еще некоторые детали. Похоже, ваш пост в основном кодовый; пожалуйста, добавьте больше деталей.

1 Ответ

0 голосов
/ 28 февраля 2020

попробуйте заменить:

elseif($postjson['aksi']=='load_Kelas'){
  $data = array();
  $query = mysqli_query($mysqli, "SELECT * FROM t_kelas_kuliah");
  while($row = mysqli_fetch_array($query)){
      $data[] = array(
          'kd_kelas'    => $row['kd_kelas'],
          'kd_matkul'   => $row['kd_matkul'],
          'kd_dosen'    => $row['kd_dosen'],
          'waktu'       => $row['waktu'],
          'ruang'       => $row['ruang'],
          'hari'        => $row['hari'],
      );
  }
  if($query) $result = json_encode(array('success'=>true, 'result'=>$data));
  else $result = json_encode(array('success'=>false));
  echo $result;
}

на это:

elseif($postjson['aksi']=='load_Kelas'){
  $temp = array();
  $data = array();
  $query = mysqli_query($mysqli, "SELECT * FROM t_kelas_kuliah");
  while($row = mysqli_fetch_array($query)){
      $temp[$row['hari']][] = array(
          'kd_kelas'    => $row['kd_kelas'],
          'kd_matkul'   => $row['kd_matkul'],
          'kd_dosen'    => $row['kd_dosen'],
          'waktu'       => $row['waktu'],
          'ruang'       => $row['ruang'],
          'hari'        => $row['hari'],
      );
  };
  foreach($temp as $key => $val){
      $data[] = array(
        "Hari" => $key,
        "Kuliah" => $val
      );
  };
  if($query) $result = json_encode(array('success'=>true, 'result'=>$data));
  else $result = json_encode(array('success'=>false));
  echo $result;
}

Надеюсь, это ответит на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...