성씨 분포도? 를 만들어 보려고 합니다. 채택완료
회원들 이름을 가지고
성씨 분포도? 를 만들어 보려고 합니다.
성을 중복없이 추출해서
김씨 3명 (김가나, 김다라, 김마바)
이씨 2명 (이가나, 이다라)
....
이런 식으로 표현하려고 아래 코드를 만들다 막혔습니다.
</p>
<p><?php
$sql1="select substr(mb_name,1,1) , count(*) from g5_member group by substr(mb_name,1,1)"; // 성만 추출
$f_name = sql_query($sql1);
while ( $row=sql_fetch_array($f_name) ) $list_f_name[] = $row;
echo $end=count($list_f_name);
//print_r2($list_f_name); </p>
<p>
for($i=0; $i < $end; $i=$i+1) {
$sql2="select mb_name from g5_member where mb_name like '" .$list_f_name[$i]. "%'"; // 해당하는 사람 추출
$name = sql_query($sql2);
while ( $row=sql_fetch_array($name) ) $list_name[$i][] = $row; //여기가 문제인듯
}
print_r2($list_name);</p>
<p>?></p>
<p>
답변 3개
lname , count(*) cnt from g5_member group by substr(mb_name,1,1)"; // 성만 추출 $f_name = sql_query($sql1); while ( $row=sql_fetch_array($f_name) ) $list_f_name[ $row['lname']] = $row['cnt']; print_r2($list_f_name);
?>
댓글을 작성하려면 로그인이 필요합니다.
방법들은 앞에서 제시해 주신대로 하면 되는데...
남씨와 남궁씨 등을 솎아내는 로직도 필요할 듯요.
거기에
남궁 민 과 남 궁민을 가려내는 것두요.
코드란게 작은 빈틈을 막는다는 것이 쉽지는 않습니다.
답변에 대한 댓글 3개
아니면 회원가입시 성과 이름 사이에 공백을 넣으라고 해야죠.
그럴 경우 공백이 읽혀지지 않으면 경고창이 뜨는 로직을 넣고 이름필드를 공백 기준으로 explode 해서 [0]을 취하도록 해야겠구요.
이놈의 코딩이란게 주요로직을 짜는 것보다 빈틈 막는 로직을 짜는 게 어떨 때는 시간이 더 걸리더라구요.
배보다 배꼽이 더 큰 경우가 비일비재한데 클라측에서는 왜 빨리 안 되냐고 독촉...
울고 싶은 상황이 많습니다. 개발자의 숙명이라 할까요?
확인해보니 '스마일' '알리' 같은 외국인도 있더군요!!
공부할겸 해보려고 한건데.. 하지 말까 고민입니다. ^^;
답변 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
방법은 다양하게 있습니다.
이렇게 하면 이름들이 출력될겁니다.
</p>
<p>select substr(mb_name,1,1) , COUNT(*),GROUP_CONCAT(mb_name ORDER BY mb_name ASC ) from g5_member group by substr(mb_name,1,1)</p>
<p>
</p>
<p>select substr(mb_name,1,1) , COUNT(*),GROUP_CONCAT(mb_id ORDER BY mb_id ASC ) from g5_member group by substr(mb_name,1,1)</p>
<p>
이 쿼리를 한번 실행해 보시면 영감이 떠오르실겁니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
한자까지 있으면 가능하지 않을까요?