2016-09-09 4 views
0

검색된 정보를 원하는 방식으로 검색하고 서식을 지정하는 데 약간의 문제가 있습니다.PHP가 데이터베이스에서 데이터를 가져 오는 중

기본적으로 범주 ID와 일치하는 제품 ID가 있습니다. 제품에 여러 범주가있을 수 있으며 예상대로 결과를 얻습니다. 그러나 모든 제품에 대해 범주 ID 목록을 얻는 방식으로 형식을 지정하려고합니다. 지금은 같은 모든 종류의 ID에 대해 여러 제품 ID를 얻을 :

: 여기
Product Id: 65 ––> Categories Id:250, 249 
Product Id: 66 ––> Categories Id:250, 249, 252, 251, 276,268, 255 

코드 내가 쿼리를 수행 한 것입니다 :

Product Id: 65 ––> Categories Id:250 
Product Id: 65 ––> Categories Id:249 
Product Id: 66 ––> Categories Id:250 
Product Id: 66 ––> Categories Id:249 
Product Id: 66 ––> Categories Id:252 
Product Id: 66 ––> Categories Id:251 
Product Id: 66 ––> Categories Id:276 
Product Id: 66 ––> Categories Id:268 
Product Id: 66 ––> Categories Id:255 

내가 더 좋아해야

$sql = "SELECT * FROM `products_categories` ORDER BY `products_categories`.`productid` ASC"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 
     echo "Product Id: " . $row["productid"] . " ––> " . "Categories Id:" . $row["categoryid"] . "<br>"; 
    } 
} else { 
    echo "0 results"; 
} 

입력 해 주셔서 감사합니다.

+0

우리는 MySQL의 테이블 구조에 대한 추가 정보가 필요하고 어떤 관계 것은 : 일대 다, 다 대다? 조인 테이블 (세 번째 MySQL 테이블)을 사용합니까? –

+0

테이블의 구조는 지금 내가 얻고있는 것과 매우 유사합니다. 기본적으로 해당 ID가 속한 모든 카테고리 ID에 대해 여러 개의 제품 ID가 있습니다. 이 특정 테이블은이 관계를 가지고 있습니다. 결국 Category와 관련된 이름을 검색해야하지만 단일 Product ID 구조에서 Category ID 목록을 얻을 수 있다면 좋을 것입니다. 물론 카테고리에는 여러 제품 ID가 있습니다. – Sergio

답변

3

사용 GROUP_CONCAT

SELECT productid, GROUP_CONCAT(categoryid) as categoryid 
FROM products_categories 
group by productid 
order by productid 
+0

PyQL, Perfect. 마지막 질문 하나, 모든 카테고리 ID 뒤에 공백을 추가하려면 어떻게합니까? 나는 $ row [ "categoryid"] 이후에 연결을 시도했지만 아무런 결과도 얻지 못했습니다. 다시 감사합니다. – Sergio

+0

그걸 알아 내면 ... 별거를 잊어 버렸습니다 ... 다시 한번 감사드립니다. 앞으로 어떤 사람이 동일한 결과를 찾고 있다면 GROUP_CONCAT (categoryid SEPARATOR ',')를 사용하십시오. – Sergio

관련 문제