PHP는

2016-06-20 2 views
0

그래서 내가 간행물PHP는

내 현재 쿼리와 관련된 사람을 선택 쿼리를 그룹화하는 것은 이것이다 :

$query = "SELECT confAuth.personid, publicationconf.title FROM confAuth INNER JOIN publicationconf ON publicationconf.conferenceid = confAuth.conferenceid GROUP BY publicationconf.conferenceid"; 

그것은 않습니다 회의 ID로 그룹 있지만 한 사람의 ID가 각 항목에 대해 미리 보여줍니다된다. 분명히 필요한 것은 모든 사람 ID를 표시하는 것입니다.

미리 감사드립니다.


방금 ​​언급 한 반 친구가 말하듯이 이것은 우리의 print 진술이며 잘못된 것입니다. 이것에 대한 모든 입력.

$result = $conn->query($query); 
    $rows = $result->num_rows; 
    if ($rows > 0) 
    { 
     for($i=0; $i<$rows; $i++) 
     { 
      if($row = $result->fetch_assoc()) 
      { 
      ?> 
       <div class="row"> 
       <div class="col-md-10"> 
       <p><?php echo $row["personid"] . ", " . $row["title"]?></p> 
+0

, 같은'confAuth.personid' 다른'publicationconf.title's있을 것이다? 또한 테이블 구조 및 일부 샘플 데이터를 포함하십시오. –

답변

0

사용 GROUP_CONCAT (confAuth.personid)는 그룹화 세트에있는 모든 값의 쉼표로 구분 된 목록을 얻을 수 있습니다.

그러나 personid/title 콤보 당 하나의 라인 항목을 원하므로 groupid 절에 personid와 제목을 추가하십시오.

또한 가독성을 위해 테이블 ​​별칭을 고려하십시오. 쿼리를 기반으로

$query = "SELECT ca.personid, pc.title 
FROM confAuth ca 
INNER JOIN publicationconf pc ON pc.conferenceid = ca.conferenceid 
GROUP BY pc.conferenceid, ca.personid, pc.title"; 
+0

모든 사람 ID를 포함하는 회의 게시 제목 당 한 줄씩 필요합니다. 또한 group_concat()을 사용할 위치는? – MrUber

+0

수정 된 코드 예를 참조하십시오. –

+0

도움이 되었습니까? –