0

학교에서 프로젝트를 도와주세요. 이 상황과 같은 laravel 컨트롤러에서 어떻게 쿼리 할 수 ​​있습니다. 나는 세 개의 테이블이 :Laravel 서브 어레이를 사용하지 않고 결과가 궁금하다

배송 테이블 :

Ship_ID (INT AUTO INC) 
AMOUNT (DOUBLE,2) 
NAME (VARCHAR) 
SHIP_DATE (DATE) 
RECEIVER (VARCHAR) 

Shipping_products :

ID (INT AUTO INC) 
Ship_id (foreign key from shipping table) 
Product_id 

Products_table : Shipping_table 및 Shipping_products 및 tbl_products을, 지금 내 테이블 구조는 이것이다

Product_id (Auto Inc) 
name(varchar) 
Qty(int) 
Description (varchar) 

이제 무엇을할까요? 나는 다음과 같은 질의 결과를 얻고 싶다 : 나는 배송 테이블에있는 모든 것을 가져오고 싶은데 서브 어레이에서는 원하는 배송 ID를 사용하여 shipping_products에 나열된 제품을 얻고 싶다.

뭔가 이런 결과 : 예 나는 2 Shipping_table는 SQL 부분은 당신이이 같이 php 부분은 더 복잡하다

SELECT * 
FROM Shipping S 
LEFT JOIN Shipping_Products SP 
    ON SP.Ship_Id=S.Ship_Id 
LEFT JOIN Products P 
    ON P.Product_id=SP.Product_id 

쉽게 (JOINS 사용)입니다

Array(2) { 
[0] Array(4) { 
    ['Ship_id'] "1" 
    ['Amount'] "10000" 
    ['Ship_date'] "1995-12-11" 
    ['Ship_products'] Array(3) 
     ['id'] "1" Array(2) 
      ['product_id'] "5" 
      ['name'] "Product 1" 
     ['id'] "2" Array(2) 
      ['product_id'] "6" 
      ['name'] "Product 2" 
     ['id'] "3" Array(2) 
      ['product_id'] "10" 
      ['name'] "Product 15" 

} 
[1] Array(4) { 
    ['Ship_id'] "2" 
    ['Amount'] "15000" 
    ['Ship_date'] "1995-12-15" 
    ['Ship_products'] Array(2) 
     ['id'] "1" Array(2) 
      ['product_id'] "5" 
      ['name'] "Product 1" 
     ['id'] "2" Array(2) 
      ['product_id'] "6" 
      ['name'] "Product 2" 
} 
} 
+0

MySQL 쿼리 결과는 * 플랫 테이블 *입니다. 당신이 원하는 쿼리 ** 및 ** PHP 코드를 특수 배열로 옮기기 위해서 –

답변

1

값 가질 루프에서 결과를 얻고 Ship_idProduct_id의 변경 사항을 감지하고 결과 배열에 넣습니다. 검증되지 않은 있지만 논리적으로 소리 -이 이후

는이 빠른 알고리즘 예입니다


... 숙제 .. 내가 운동으로 떠날 것입니다.

$cur_ship = ''; 
$cur_prod = ''; 
$results = array(); 
foreach ($resultset as $key => $row) { 
    if ($cur_ship != $row['Ship_id']) { 
     $cur_ship = $row['Ship_id']; 
     $cur_prod = ''; 
     $results[$cur_ship] = array(); 
     // Fill ship info from $row 
    } 
    if ($cur_prod != $row['Product_id']) { 
     $cur_prod = $row['Product_id']; 
     $results[$cur_ship][$cur_prod] = array(); 
     // Fill Product info from $row 
    } 
    // FILL OUR $results[$cur_ship][$cur_prod] from $row 
} 
+0

답장을 주셔서 감사합니다. 이것을 시도하겠습니다. –

+0

안녕하세요, PHP 코드 예제로 링크를 줄 수 있습니까? .. 어떻게 해야할지에 대한 단서가 없다. –

+0

결과를'php'에 연결하여 실행하고 얻을 수 있습니까? 그렇다면 <나는 알고리즘을 제공 할 수 있습니다. 결과를 연결하고 얻는 것이 나를 위해 범위를 벗어났습니다 –

관련 문제