2010-03-02 5 views
2

EDIT :: 어쩌면 내가 데이터베이스에서 결과 집합을 얻는 적절한 방법이 무엇인지 묻고 있어야합니다. 1 : M 관계가있는 곳에 5 개의 조인이 있으면 데이터에 대해 5 개의 다른 시간대에 데이터베이스에 있습니까?배열 도움말. 더 나은 방법을 찾고

나는 약 한 시간 전에이 질문을했지만 피팅 된 답변을 얻을 수 없었습니다. 나는 앞으로 나아가서 내가 원하는 것을 정확히하고 있지만 더 좋은 방법을 찾고있는 코드를 작성했다.

이 어레이는 여러개의 행을 제공하는데,이 중 하나만 필요하고 다른 것들은 여러 번 필요하다. 나는 아래에서 한 것처럼 이것들을 걸러 내고 가능하다면 이것을하는 더 좋은 방법을 원한다.

이 코드는 완벽하게 작동하지만이 방법을 사용하는 것이 더 효율적이라고 생각합니다. 조금 깔끔하게 정리할 수있는 PHP 함수가 있습니까? 여기

// these are the two columns that produce more than 1 result. 
    $product = ''; 
    $orderid = ''; 

    foreach($res as $key) 
    { 
     // these produce many results but I only need one. 
     $cid = $key['cid']; 
     $model = $key['model']; 
     $mfgr = $key['mfgr']; 
     $color = $key['color']; 
     $orderid = $key['orderid']; 

     // these are the two columns that produce more than 1 result. 
     if($key['flag'] == 'product') 
     { 
      $product .= $key['content']; 
     } 
     if($key['flag'] == 'orderid') 
     { 
      $orderid .= $key['content']; 
     } 
    } 

// my variables from above in string format: 

은 당신이 실제로 데이터를 조작하는 방법을 해독 조금 어렵다 데이터베이스 구조를 보지 않고 요청 된 SQL

SELECT 
cid, 
model, 
mfgr, 
color, 
orderid, 
product, 
flag 
FROM products Inner Join bluas ON products.cid = bluas.cid 
WHERE bluas.cid = 332 
ORDER BY bluas.location ASC 
+0

데이터베이스를 사용 하시겠습니까? – knittl

+0

예, 결과는 데이터베이스에서 가져온 것입니다. – jim

+0

이미'where' 문으로 데이터베이스에 필터가 있습니다 ... – knittl

답변

1

입니다.

아마도이게 당신이 찾고있는 것일까요?

SELECT p.cid, p.model, p.mfgr, p.color, p.orderid, p.product, p.flag, GROUP_CONCAT(p.content SEPARATOR ', ') 
FROM products AS p 
INNER JOIN bluas AS b ON p.cid = b.cid 
WHERE b.cid = 332 
GROUP BY p.cid, p.flag 
ORDER BY b.location ASC 

는 이제 각 flag 쉼표로 구성된 항목이 각 제품 cid 거기에 각 flag 항목에 대해 반복 많은 것을 대신 분리 된 목록.

당신은 문자열로 완료 신속하게 같은 것을 수행하여 더 조작 배열으로 바꿀 수있는 그런 후 : 다시 당신이 끌어하려고하는 정보가 무엇인지 말해 정말 어렵다

explode(', ', $key['content']); 

데이터베이스 구조를 보지 않아도됩니다. content을 움켜 잡는 것을 보지 않는 것처럼 SQL 쿼리도 코드와 실제로 일치하지 않습니다. 여하튼

내가 당신을 위해 무엇을 찾고있는 GROUP BYGROUP_CONCAT (more info)의 조합이 꽤 확신한다.

더 많은 데이터베이스 구조를 공유하고 정확히 어떤 정보를 가져오고 원하는 형식으로 만들 것인지 좀 더 자세히 설명 할 수 있다면 필요한 경우 SQL을 사용하면 도움이 될 것입니다.

관련 문제