이전 목록 다음
채택완료

SQL 호출 질문입니다..

2022-02-23 (수) 16:11:35 2,621

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 포인트
2022-02-23 (수) 16:22:35
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개

2022-02-23 (수) 16:39:38
답변 감사합니다!

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

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

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

제가 다시 한번 고쳐볼게요 감사합니다!
2022-02-23 (수) 17:30:14
(정정)
$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
2022-02-23 (수) 17:42:19
중복은 값들은 제외 되었으나
누락값들이 여전히 나오네요 ㅠ
여튼 감사합니다 ㅠ!!
2022-02-24 (목) 00:25:18
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

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