쿼리문 좀 봐주세요
본문
$sql = "
select
mb_name, mb_9, mb_id
from (select * from {$g5['member_table']}
order by mb_9, mb_id) products_sorted,
(select @pv := '{$main_name}') initialisation
where find_in_set(mb_9, @pv)
and length(@pv := concat(@pv, ',', mb_id))
";
$result = sql_query($sql, true);
while ($row = sql_fetch_array($result)) {
print_r2($row);
mysql 5.x 버전이라 재귀쿼리문을 사용하지 못합니다.
{$main_name} 의 아이디로부터 mb_9가 연결되어 있는 모든 하위리스트를 뽑아내는 소스인데..
10개 라인에 총100명이 있다고 했을때
9개 라인의 90명은 잘 불러오는데 1개 라인에 10명만 불러오지 못합니다.
해당 회원을 삭제, 수정, 재 등록 해봐도... 계속 똑같은 라인만 불러오지 못하는데...
제가 알지 못하는 부분이 있는지 궁금합니다.
불러오지 못하는 라인을 전부 하나하나 체크해봐도.. 상위가 {$main_name}로 연결이 되어 있는데..
애초에 에러가 나면 모르겠는데.. 에러도 안나고 잘 불러오는데..
특정 라인만 못불러오는게... 미치겠습니다. ㅜㅜ
!-->
답변 3
$sql = "
select mb_name, mb_9, mb_id
from {$g5['member_table']}
where instr(mb_9, '{$main_name}')
";
간단한 조직도 입니다.
{$main_name} 가 이옥 (아이디 : 1003015) 이였을때
바로 하위는 mb_9가 전부 1003015로 되어 있으며 그 하위도 마찬가지입니다.
위 소스는 최상위 1003015 의 모든 하위를 보여주는 소스인데..
저 빨간 부분만 불러오지 못하는 상황입니다.
{$main_name} 이 ID 인지 Name 인지 모르겠습니다.
어려운 쿼리를 쓰지 않아도 됩니다. (가능하다면 쉬운 쿼리를 쓰는 것이 좋습니다.)
$sql = "
select mb_name, mb_9, mb_id
from {$g5['member_table']}
where mb_9 in (select mb_9 from {$g5['member_table']} where mb_id = '{$main_name}')
";
or
$sql = "
select mb_name, mb_9, mb_id
from {$g5['member_table']}
where mb_9 in (select mb_9 from {$g5['member_table']} where mb_name = '{$main_name}')
";
답변을 작성하시기 전에 로그인 해주세요.