이전 목록 다음
채택완료

SQL 호출 질문입니다..

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

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

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

Copy
<?php
$sql_admin_custom = "SELECT * FROM g5_write_coin GROUP BY 1반";
$res_admin_custom = sql_query($sql_admin_custom);

for ($i=0; $row=sql_fetch_array($res_admin_custom); $i++) {
    echo $row['1반'].'<br>';
}
?>

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

|

답변 2개 / 댓글 5개

채택된 답변
+20 포인트

Copy
<?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반'];
}

$arr2 = array_unique($arr);

for ($i = 0, $cnt = count($arr2); $i < $cnt; $i++) {
    echo $arr[$i];
}
?>

답변에 대한 댓글 5개

답변 감사합니다!

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

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

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

제가 다시 한번 고쳐볼게요 감사합니다!
(정정)
$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
중복은 값들은 제외 되었으나
누락값들이 여전히 나오네요 ㅠ
여튼 감사합니다 ㅠ!!
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

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

🐛 버그신고