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

간단한 SQL 문법 좀 봐주세요. 채택완료

추팔소 7년 전 조회 1,966

</p>

<p>  <?php

   $point_sql = "SELECT DISTINCT t1.mb_id, t1.mb_point, t1.mb_nick, t1.mb_level, COUNT(t1.mb_id) AS ranking

   FROM {$g5['member_table']} t1, {$g5['member_table']} t2

   WHERE (t1.mb_point < t2.mb_point

   OR t1.mb_id = t2.mb_id)

   GROUP BY t1.mb_id

   ORDER BY ranking

   LIMIT 0 , 1";

   $point_que = sql_query($point_sql);

   while($point_row = sql_fetch_array($point_que)){

    $tmp_member = sql_fetch("select mb_id, mb_nick, mb_email, mb_homepage from {$g5['member_table']} where mb_id = '".$point_row['mb_id']."'");

    $tmp_sideview = get_sideview($tmp_member['mb_id'], cut_str($tmp_member['mb_nick'], $config['cf_cut_name']), $tmp_member['mb_email'], $tmp_member['mb_homepage']);

   ?>

    <span style="line-height:1.8em"> <?=level_icon($point_row['mb_id'])?> </span><?=$tmp_sideview?>

    <span style="color:#000">(<?=number_format($point_row['mb_point'])?>)</span> 님 포인트 1등입니다.

  <? } ?></p>

<p>

 

 

$point_sql 조건문에 mb_level<9 를 넣어야 하는데

내용에 있는 코드 이대로 출력해보면 잘 뜨는데 제가 mb_level<9를 WHERE에 추가하고

출력시키면 내용이 안뜨네요 ㅠㅠ 문법이 잘못된건지..

올린 코드는 원본인데 저기서 어떻게 추가해야할지 알려주시면 감사하겠습니다

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

답변 3개

채택된 답변
+20 포인트
7년 전

WHERE (t1.mb_point < t2.mb_point OR t1.mb_id = t2.mb_id)

조건절만 봐서는 이상은 없습니다.

 

WHERE (t1.mb_point < t2.mb_point OR t1.mb_id = t2.mb_id) AND t1.mb_level < 9 이렇게 했는데 안된다는 건가요?

 

에러 메세지를 보여주시면 정확히 알수 있겠네요

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

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

플래토
7년 전

작동 안할거 같습니다

grouy by는 멀티함수 이외의 것들이 대상입니다

group by 문법을 찾아보시고 

원하시는 랭킹을 뭘하실지 정리하신다음 

Sql문으로 먼저 수행해본후에 코딩을 하세요

 

where절로 뭘하시고 싶은지 애매해보입니다

where만 봐도 안나올듯 싶기도해요

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

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

해피정
7년 전

 mb_level<9  이 아니라   t1.mb_level<9  이라고 해야겠죠?

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

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

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

로그인