Rumah  >  Soal Jawab  >  teks badan

Kumpulkan hasil MySQL mengikut ID untuk menggelung

Saya mempunyai jadual dengan data penerbangan dalam mysql. Saya sedang menulis kod php yang akan mengumpulkan dan memaparkan data menggunakan codeigniter 3

journey_id     air_id  FlightDuration  out_or_in   flightduration2
    1           1           20hr 5min   outbound    1205
    2           1           20hr 5min   outbound    1300
    3           1           17hr 55min  inbound     2258
    4           1           17hr 55min  inbound     1075
    5           2           31hr 40min  outbound    1970
    6           2           31hr 40min  outbound    1900
    7           2           17hr 55min  inbound     2223
    8           2           17hr 55min  inbound     1987
    9           3           10hr 45min  outbound    645
    10          3           11hr 25min  inbound     685

Saya menggunakan $this->db->get() untuk mendapatkan semula data dan saya boleh gelung dengan mudah. Tetapi kerana setiap baris adalah dalam tatasusunan, saya mendapati sukar untuk mengumpulkannya. Saya tidak boleh menggunakan kumpulan mysql kerana saya memerlukan setiap baris.

Sebagai contoh, saya ingin memaparkan item berikut

air_id - 1
20hr 5min   outbound    1205
20hr 5min   outbound    1300
17hr 55min  inbound     2258
17hr 55min  inbound     1075

air_id - 2
31hr 40min  outbound    1970
31hr 40min  outbound    1900
17hr 55min  inbound     2223
17hr 55min  inbound     1987

air_id - 3
10hr 45min  outbound    645
11hr 25min  inbound     685

Apakah cara terbaik untuk mengumpulkan keputusan mengikut air_id supaya saya boleh mengulang

P粉638343995P粉638343995166 hari yang lalu396

membalas semua(1)saya akan balas

  • P粉043295337

    P粉0432953372024-04-07 16:23:46

    1. Dapatkan data daripada pangkalan data:

      $this->db->select('journey_id, air_id, FlightDuration, out_or_in, flightduration2');
       $this->db->from('your_table_name'); // Replace 'your_table_name' with the actual table name
       $query = $this->db->get();
       $data = $query->result_array();
    2. Buat tatasusunan kosong untuk menyimpan data terkumpul:

      $grouped_data = array();
    3. Lelaran pada data yang diambil dan kumpulkannya melalui air_id:

      foreach ($data as $row) {
      
          $air_id = $row['air_id'];
      
          // Check if the air_id already exists in the grouped_data array
          if (!isset($grouped_data[$air_id])) {
              // If not, initialize an empty array for this air_id
              $grouped_data[$air_id] = array();
          }
      
          // Add the current row to the group for this air_id
          $grouped_data[$air_id][] = $row;
      }
    4. Kini anda mempunyai data yang dikumpulkan mengikut air_id dalam tatasusunan $grouped_data. Anda boleh lelaran melalui tatasusunan ini untuk memaparkan data yang anda tentukan:

      foreach ($grouped_data as $air_id => $group) {
          echo "air_id - $air_id
      "; foreach ($group as $row) { echo $row['FlightDuration'] . ' ' . $row['out_or_in'] . ' ' . $row['flightduration2'] . '
      '; } echo "
      "; }

    Kod ini akan melingkari data terkumpul dan memaparkannya seperti yang anda huraikan, setiap kumpulan data penerbangan berada di bawah air_id yang sepadan.

    balas
    0
  • Batalbalas