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

PHP / mySQL - cách tìm nạp các hàng lồng nhau vào mảng đa chiều

Truy vấn sẽ trông giống như sau:

SELECT * FROM scales
INNER JOIN items ON scales.id = items.scale_id

Nếu bạn muốn lặp lại với các vòng lặp lồng nhau, bạn sẽ cần kéo dữ liệu này vào một mảng - hy vọng rằng bạn không kéo lại nhiều đến mức nó sẽ chiếm quá nhiều bộ nhớ.

$scales = array();

while ($row = mysql_fetch_assoc($data))
{
    if (!isset($scales[$row['scale_id']]))
    {
        $row['items'] = array();
        $scales[$row['scale_id']] = $row;
    }

    $scales[$row['scale_id']]['items'][] = $row;
}

Sau đó, bạn có thể lặp lại:

foreach ($scales as $scale)
{
    foreach ($scale['items'] as $item)
        ; //... do stuff
}

Lưu ý:điều này hơi ngây thơ ở chỗ $ scale và $ item đều sẽ chứa các trường từ CẢ HAI bảng ... nếu đó là vấn đề thì bạn cần thay đổi các phép gán trong vòng lặp ở trên để chỉ lấy ra các trường bạn muốn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cơ sở dữ liệu công thức, tìm kiếm theo thành phần

  2. Chọn từ menu thả xuống và tải lại trang

  3. Mật khẩu so sánh PHP và MySQL

  4. Dấu thời gian với độ chính xác mili giây:Cách lưu chúng trong MySQL

  5. LOAD DATA LOCAL INFILE không hoạt động từ php 5.5 bằng cách sử dụng PDO