테스트 사이트 - 개발 중인 베타 버전입니다

SQL 호출 질문입니다.. 채택완료

바트컨트롤 3년 전 조회 2,360

3개의 필드에서 중복값을 제외하고 나열하려고하는데

1개의 필드값(1반)은 구하겠는데 3개를 어떻게 합쳐야하나 해서요...

  1반 2반 3반    
  김철수 박철수 박철수    
  홍길동 박길동 김민희    
  김민희 박민희 김철수    
  김철수 박철수 김민희    
           
결과: 김철수 홍길동 김민희 박철수 박길동 박민희

</p>

<p><?php

$sql_admin_custom = "SELECT * FROM g5_write_coin GROUP BY 1반";

$res_admin_custom = sql_query($sql_admin_custom);</p>

<p>for ($i=0; $row=sql_fetch_array($res_admin_custom); $i++) {

    echo $row['1반'].'
';

}

?></p>

<p>

조언이나 도움부탁드립니다 ㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
3년 전

</p>

<p><?php

$arr = array();

$sql = "SELECT * FROM g5_write_coin GROUP BY 1반";

$result = sql_query($sql);

for ($i=0; $row=sql_fetch_array($result); $i++) {

    $arr[] = $row['1반'];

    $arr[] = $row['2반'];

    $arr[] = $row['3반'];

}</p>

<p>$arr2 = array_unique($arr);</p>

<p>for ($i = 0, $cnt = count($arr2); $i < $cnt; $i++) {

    echo $arr[$i];

}

?></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

바트컨트롤
3년 전
답변 감사합니다!

3개의 필드 중 group by로 1반만 묶으면 되나요? 3개의 필드다 중복값들이 있어서요..
마르스컴퍼니
3년 전
(정정) $sql = "SELECT * FROM g5_write_coin GROUP BY 1반";
-> $sql = "SELECT * FROM g5_write_coin";

php array 에서 중복 제거하는 방식으로 했습니다.
바트컨트롤
3년 전
array_unique($arr);를 하면
아하 따로 group by를 할 필요가 없나 보군요!
위처럼 진행했는데
잘되지 않아 추가적으로 ㅠ

1. 중복값들이 나오고 누락값들이 나오드라구요..
2. echo $arr[$i].'='; 찍어보니
김철수=홍길동=====김철수=박철수=박길동=김철수=====
이런식으로 나오네요 ㅠ

제가 다시 한번 고쳐볼게요 감사합니다!
마르스컴퍼니
3년 전
(정정)
$arr2 = array_unique($arr);
for ($i = 0, $cnt = count($arr2); $i < $cnt; $i++) {
echo $arr[$i];
}
->
$arr2 = array_unique($arr);
for ($i = 0, $cnt = count($arr2); $i < $cnt; $i++) {
echo $arr2[$i];
}

입니다. 중복제거한 값 $arr2
바트컨트롤
3년 전
중복은 값들은 제외 되었으나
누락값들이 여전히 나오네요 ㅠ
여튼 감사합니다 ㅠ!!

댓글을 작성하려면 로그인이 필요합니다.

SELECT distinct '1' ban, 1반 FROM g5_write_coin 

union

SELECT distinct '2' ban, 2반 FROM g5_write_coin

union

SELECT distinct '3' ban, 3반 FROM g5_write_coin

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인