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

성씨 분포도? 를 만들어 보려고 합니다. 채택완료

3년 전 조회 2,038

회원들 이름을 가지고

성씨 분포도? 를 만들어 보려고 합니다.

 

성을 중복없이 추출해서 

김씨 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개

채택된 답변
+20 포인트

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>

 

이 쿼리를 한번 실행해 보시면 영감이 떠오르실겁니다.

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

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

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

로그인

전체 질문 목록

🐛 버그신고