Kết quả 1 đến 6 của 6
  1. #1
    CI New nbchuy's Avatar
    Ngày tham gia
    29-01-2014
    Bài viết
    3
    Cảm ơn
    1
    Được cảm ơn 0 trong 0 bài viết

    Question Lấy Dữ Liệu Từ Bảng Quan hệ một - nhiều trong Database

    Mình có các table sau:
    - product: productid
    - productimage: productid, imagepath

    Một product sẽ có nhiều imagepath
    Giờ mình muốn lấy lên tất cả product trong đó có productid, array imagepath thì phải làm sao hả mọi người.

  2. #2
    Moderator vudesign's Avatar
    Ngày tham gia
    23-01-2014
    Bài viết
    324
    Cảm ơn
    22
    Được cảm ơn 45 trong 39 bài viết
    join 2 bang select ra thoi

  3. #3
    CI New nbchuy's Avatar
    Ngày tham gia
    29-01-2014
    Bài viết
    3
    Cảm ơn
    1
    Được cảm ơn 0 trong 0 bài viết
    Trích dẫn Gửi bởi vudesign Xem bài viết
    join 2 bang select ra thoi
    Join thì nó sẽ tạo ra nhiều record mỗi record nó sẽ là 1 productId và 1 imagePath. Cái mình muốn là 1 productId và 1 array imagePath. mình đang bí cái này.

  4. #4
    Moderator vudesign's Avatar
    Ngày tham gia
    23-01-2014
    Bài viết
    324
    Cảm ơn
    22
    Được cảm ơn 45 trong 39 bài viết
    muc dich cau muon select trong php hay SQL . neu trong php thi progucid bo ngoai foreach .con imagePath thi trong foreach thoi.

  5. #5
    CI Member PhanNguyenChuong's Avatar
    Ngày tham gia
    15-07-2013
    Bài viết
    134
    Cảm ơn
    124
    Được cảm ơn 36 trong 32 bài viết
    Sẽ không có câu truy vấn trong MySql để có được 1 mảng như bạn mong muốn, nhưng sau khi lấy dữ liệu từ việc join 2 bảng bạn chỉ cần xử lý 1 bước nhỏ nữa để có được 1 mảng với từng khóa là danh sách các productId(không bị trùng lặp) và theo từng productId là 1 mảng tuần tự các imagePath như yêu cầu của bạn.

    + Trong Model bạn lấy danh sách các productId ứng với imagePath của nó:
    PHP Code:
    public function layTatCaKetQua(){
    return 
    $this->db->query("SELECT product.productID, productimage.imagePath
                              FROM product, productimage
                              WHERE product.productId = productimage.productId"
    )
                              ->
    result_array();

    + Trong Controller:
    PHP Code:
    $this->load->model('Ten_Model');
    $ket_qua $this->Ten_Model->layTatCaKetQua();
    $data = array(); // Mảng theo mong muốn của bạn
    foreach($ket_qua as $item){
      
    $data[$item['productId']][] = $item['imagePath'];
    }
    // Mảng data sau xử lý.
    echo '<pre>';
    print_r($data);
    echo 
    '</pre>';
    exit(); 
    Kết quả mảng data sẽ có dạng như thế này:

    PHP Code:
    Array
    (
      [
    ID_1] => Array
               (
                  [
    0] => 1_hinh
                  
    [1] => 1_hinh
               
    )
      [
    ID_2] => Array
               (
                  [
    0] => 2_hinh
                  
    [1] => 2_hinh
                  
    [2] => 2_hinh
               
    )
      [
    ID_3] => Array
                (
                  [
    0] => 3_hinh
                
    )
      [
    ID_4] => Array
               (
                  [
    0] => 4_hinh
               
    )

    Sửa lần cuối bởi PhanNguyenChuong; 30-01-2014 lúc 01:44 PM.

  6. The Following User Says Thank You to PhanNguyenChuong For This Useful Post:

    nbchuy (31-01-2014)

  7. #6
    CI New nbchuy's Avatar
    Ngày tham gia
    29-01-2014
    Bài viết
    3
    Cảm ơn
    1
    Được cảm ơn 0 trong 0 bài viết
    Trích dẫn Gửi bởi PhanNguyenChuong Xem bài viết
    Sẽ không có câu truy vấn trong MySql để có được 1 mảng như bạn mong muốn, nhưng sau khi lấy dữ liệu từ việc join 2 bảng bạn chỉ cần xử lý 1 bước nhỏ nữa để có được 1 mảng với từng khóa là danh sách các productId(không bị trùng lặp) và theo từng productId là 1 mảng tuần tự các imagePath như yêu cầu của bạn.

    + Trong Model bạn lấy danh sách các productId ứng với imagePath của nó:
    PHP Code:
    public function layTatCaKetQua(){
    return 
    $this->db->query("SELECT product.productID, productimage.imagePath
                              FROM product, productimage
                              WHERE product.productId = productimage.productId"
    )
                              ->
    result_array();

    + Trong Controller:
    PHP Code:
    $this->load->model('Ten_Model');
    $ket_qua $this->Ten_Model->layTatCaKetQua();
    $data = array(); // Mảng theo mong muốn của bạn
    foreach($ket_qua as $item){
      
    $data[$item['productId']][] = $item['imagePath'];
    }
    // Mảng data sau xử lý.
    echo '<pre>';
    print_r($data);
    echo 
    '</pre>';
    exit(); 
    Kết quả mảng data sẽ có dạng như thế này:

    PHP Code:
    Array
    (
      [
    ID_1] => Array
               (
                  [
    0] => 1_hinh
                  
    [1] => 1_hinh
               
    )
      [
    ID_2] => Array
               (
                  [
    0] => 2_hinh
                  
    [1] => 2_hinh
                  
    [2] => 2_hinh
               
    )
      [
    ID_3] => Array
                (
                  [
    0] => 3_hinh
                
    )
      [
    ID_4] => Array
               (
                  [
    0] => 4_hinh
               
    )

    Mình hiểu sơ sơ ý bạn rùi :). Mình sẽ test xem thế nào :D. Lúc đầu mình cũng làm tựa tựa vậy mà nó báo mấy lỗi cú pháp ko biết sửa sao. do mới làm quen vs nó :)). Thank 2 bạn nhiều

Chia sẽ và Bình Luận chủ đề Lấy Dữ Liệu Từ Bảng Quan hệ một - nhiều trong Database trên facebook

Các Chủ đề tương tự

  1. Hướng dẫn Upload nhiều ảnh trong CI
    Bởi vudesign trong diễn đàn Turtorial
    Trả lời: 2
    Bài cuối: 23-05-2014, 01:12 PM
  2. Cần giúp đỡ xóa mối quan hệ trong CSDL
    Bởi suploxanh trong diễn đàn Hỏi đáp
    Trả lời: 6
    Bài cuối: 19-02-2014, 08:54 PM
  3. Hỏi về về database cache trong Codeigniter?
    Bởi 2webvn.com trong diễn đàn Hỏi đáp
    Trả lời: 14
    Bài cuối: 02-11-2013, 10:44 AM
  4. một số phương pháp liệt kê dự liệu trong database
    Bởi Zen Studio trong diễn đàn Turtorial
    Trả lời: 0
    Bài cuối: 11-08-2013, 07:01 PM
  5. Muiti database trong Codeigniter
    Bởi tinhphaistc trong diễn đàn Turtorial
    Trả lời: 2
    Bài cuối: 14-05-2013, 10:04 AM

Các từ khóa xuất hiện trên google của chủ đề

Chưa có từ khóa lên top google

Quyền viết bài

  • Bạn không thể đăng chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi đính kèm
  • Bạn không thể sửa bài
  •