Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

cách sử dụng phiên và mảng trong truy vấn cơ sở dữ liệu để lưu trữ và hiển thị dữ liệu

bạn đang ghi đè tất cả ba biến của mình bên trong vòng lặp while trong mỗi lần lặp, Đó là lý do tại sao bạn chỉ nhận được một kết quả (là tập dữ liệu cuối cùng được thực thi bên trong while vòng lặp.

Về cơ bản, có 3 điều bạn có thể làm để giải quyết vấn đề của mình.

1.Sử dụng một mảng để lưu trữ tất cả các kết quả mà bạn nhận được từ vòng lặp

    while ($y=mysqli_fetch_array($sql)) {
          $mrk[] = implode("", DekripCBC($y['nama_merk']));
          $mdl[] = implode("", DekripCBC($y['nama_model']));
          $wrn[] = implode("", DekripCBC($y['warna']));
     }

2.Sử dụng một mảng được xác định trước để lưu trữ tất cả các kết quả mà bạn nhận được từ vòng lặp bằng cách sử dụng array_push .

  /**There are 3 ways to define an empty array. You can use any of the following
      1.$emptyArray = [];
      2.$emptyArray = array();
      3.$emptyArray = (array) null;
   * */

  $dataSet =[];

    while ($y=mysqli_fetch_array($sql)) {
          $data['mrk'] = implode("", DekripCBC($y['nama_merk']));
          $data['mdl'] = implode("", DekripCBC($y['nama_model']));
          $data['wrn'] = implode("", DekripCBC($y['warna']));

        array_push($dataSet ,$data);
     }

3. cấu trúc các giá trị vào biến của bạn

  while ($y=mysqli_fetch_array($sql)) {
    // I have added a seprator(,) for all the variables so that there will be a , after every result and it wouldn't make you confused at the end
         $mrk .= implode("", DekripCBC($y['nama_merk'])).','; 
         $mdl .= implode("", DekripCBC($y['nama_model'])).',';
         $wrn .= implode("", DekripCBC($y['warna'])).',';
  }

Tôi thực sự khuyên bạn nên sử dụng phương pháp số 1 hoặc số 2.

Tôi hy vọng điều này sẽ giúp bạn giải quyết vấn đề của mình.

Nếu bạn muốn tìm kiếm nhiều id bằng cách sử dụng truy vấn:(vì tôi đã đề cập trong các nhận xét, tôi sẽ thêm nó vào đây.)

VÍ DỤ:

//You have multiple ids that you get from the session.

$jns = [12,13,4,5]; 

 //So now you can use a foreach loop to loop all the ids and use the query to get relevant data

 foreach($jns as $id){
     $sql = mysqli_query($kns, "Select stok.id_stok as id_stok, merk.nama_merk as nama_merk, model.nama_model as nama_model, stok.warna as warna FROM stok INNER JOIN model On stok.id_model=model.id_model INNER JOIN merk ON model.id_merk=merk.id_merk where id_stok = '$id' ") or die(mysqli_error($kns));

    while ($y=mysqli_fetch_array($sql)) {
       $mrk[] = implode("", DekripCBC($y['nama_merk']));
       $mdl[] = implode("", DekripCBC($y['nama_model']));
       $wrn[] = implode("", DekripCBC($y['warna']));
     }
  }

Bằng phương pháp này, bạn có thể lấy tất cả dữ liệu cho các id được đề cập ở trên và gán nó vào mảng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mối quan hệ 'nhiều đến hai'

  2. Không thể kết nối từ Intellij với mySql đang chạy trong vùng chứa docker - kết hợp người dùng / mật khẩu cơ sở dữ liệu được chỉ định bị từ chối

  3. Cách xác minh bản sao lưu MySQL của bạn với ClusterControl

  4. Canonical Function EntityFunctions.TruncateTime không tồn tại trong MYSQL

  5. Công cụ đồng bộ hóa MySQL miễn phí