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

추천 비추천 코드좀 도와주십시요 충성 채택완료

바키라 7년 전 조회 2,402

충성

컴맹이 사이트 하나 만들어서 이런저런거 시도 해보다가 

회사에서도 맨날 졸고  매일 잠도 잘안자고 연구중입니다.

 

이번에 발생한 문제점은 다름아닌 추천 포인트제도를 사용해보려고 하는데

 

현재 제가 적용한 코드는  추천을하면 -1포인트를 사용하여 추천받은사람은 +1이 올라가고 

비추천받은사람은 -1이 내려가는걸 만들고 있었습니다.

 

그런데 문제가 발생한것은

 

만약 a 라는 닉네임을 쓰는 회원이 포인트가 어쩌다보니 0 이되었는데

포인트가 0이면 추천을 못하게 하고 싶은데 추천은 계속 되고 본인 포인트가 - 마이너스 -1  이렇게 계속 내려갑니다.

 

이걸 0이면 포인트없으면 추천 이던 비추천이던 못하도록

만들고 싶은데 아래 코드 속에서 어떻게 추가해야 할런지요 

 

도와주십시요 충성

 

 

if ($good == "good")      {      $status = "추천"; 

insert_point($write[mb_id], 1, $member['mb_nick']."님이 추천", $bo_table, $wr_id, $member['mb_id'].'추천'); 

insert_point($member['mb_id'], -1, "추천 했습니다.", $bo_table, $wr_id, $member['mb_id'].'추천하기');      }  else  {      $status = "비추천";  insert_point($write[mb_id], -1, "비추천 점수를 받았습니다.", $bo_table, $wr_id, $member['mb_id'].'비추'); 

    //insert_point($mb_id, $mw_basic[cf_nogood_re_point], "비추천 했습니다.", $bo_table, $wr_id, $mb_id.'@nogood_re');      } 

            print_result($error, $count);         }     }

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

답변 4개

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

</p>

<p>if ($good == "good")

{

 $status = "추천";

 insert_point($write[mb_id], 1, $member['mb_nick']."님이 추천", $bo_table, $wr_id, $member['mb_id'].'추천');

 insert_point($member['mb_id'], -1, "추천 했습니다.", $bo_table, $wr_id, $member['mb_id'].'추천하기');

}

else

{

 $usr = sql_fetch(" select * from {$g5['member_table']} where mb_id='$write[mb_id]' ");

 if ($usr['mb_point']){

  $status = "비추천";

  insert_point($write[mb_id], -1, "비추천 점수를 받았습니다.", $bo_table, $wr_id, $member['mb_id'].'비추');

  //insert_point($mb_id, $mw_basic[cf_nogood_re_point], "비추천 했습니다.", $bo_table, $wr_id, <a href="mailto:$mb_id.'@nogood_re'">$mb_id.'@nogood_re'</a>);

     }

}

print_result($error, $count);

로 하시면 될듯합니다.

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

답변에 대한 댓글 3개

바키라
7년 전
너무너무 감사 드립니다 충성
바키라
7년 전
사무실에 막들어 와서 잠시 해봤는데 적용이 되지 않는데 제가 또 엄한테 가져다 붙인걸까요.?

저의 상식으로는 포인트가 0이 되면 추천 비추천을 할수 없다

이런 if 문이 중간에 들어 가야 할것같은데

그걸 만들어 내질 못하겠어요
바키라
7년 전
그리고 제가 컴매이다 보니 정확한 의미들을 잘분석해내지 못하겠습니다.

일단 추가된 $usr = sql_fetch(" select * from {$g5['member_table']} where mb_id='$write[mb_id]' ");

이것이 if 문인것인지 어떤것을 뜻하는지 좀 알고 싶고

마지막 비추천 주석되어있는 부분이 왜 주석처리 되는지 알고 싶습니다.
//insert_point($mb_id, $mw_basic[cf_nogood_re_point], "비추천 했습니다.", $bo_table, $wr_id, $mb_id.'@nogood_re');

충성

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

M
7년 전

그럼 순서만 바꾸시면 됩니다.

$usr = sql_fetch(" select * from {$g5['member_table']} where mb_id='$write[mb_id]' ");

if ($usr['mb_point']){

// 원래 코드

}

이런식으로 usr를 먼저 호출하신후에 mb_point가 있을 경우에만 프로세스가 동작하도록 하면 됩니다.

 

 

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

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

M
7년 전

2. if 문이  제가 원하는 포인트가 다 깍여서 0 포인트가 되어 버리면 추천이던 비추천이던 눌러도 상대방도 안올라가고 본인 포인트도 -1 이런씩으로 계속 마이너스로 내려가지 않고 그냥 0에서 아무것도 못하도록 하고 싶은데요

--> 이 부분에서 문제는 보통 사람들은 mb_point가 0이라는거죠.

--> 위에 말씀데로라면 추천 기능 자체가 처음부터 안되는거죠. (그리고 깍여서 0 포인트가 됐다고 해서 추천을 못 받는다는것도 문제가 되지 않을까요?)

--> 그래서 위에 if을 비추천에만 걸어뒀던거죠.

--> 받아야 하는 사람이 0 포인트면 비추천을 할수 없도록요.

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

답변에 대한 댓글 1개

바키라
7년 전
답변 너무 감사 드립니다.

제가 추진하고자 하는 방향성은

추천 비추천에 중점을 두기 보다 우선 포인트에 초점을 두고 있는데요

사실 더 정확히 표현하자면 0포인트가 된사람은 레벨도 떨어지고 아에 사이트 활동 자체를 하지 못하도록 만들고 싶은것인데 그것이 제가 하기엔 첨부터 뭔가 다 새로 만들어야 하고 너무나도 어려울것같아서요.

일반 유명 커뮤니티 사이트에 보면 - 마이너스 포인트를 많이 받다보면 결국 레벨떨어지고 글도 못쓰고 이렇게 되잖아요.

그것처럼 저도 포인트가 깍여서 0 아래로 내려간사람은

추천을 줄수 없고 비추천도 줄수 없고 아무것도 못하는 상태로 만들어 버리고 싶은건데요


친절하게 코드까지 일일이 다 설명해 주셨는데
제가 저것들을 저의 생각에 맞게 조합을 잘하지 못하겠어요

제가 글을 잘못다보니 정확히 설명을 드렸는지 모르겠지만
한번만더 종합적인 정리를 좀 부탁드립니다.

충성

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

M
7년 전

1. 포인트를 확인 하기 위해서 write[mb_id]로 회원을 조회하는거고요.

$usr = sql_fetch(" select * from {$g5['member_table']} where mb_id='$write[mb_id]' ");

 

2. if ($usr['mb_point']){

   $usr[mb_point]를 조회해서 0보다 크면 해당 로직을 수행하도록 한거였습니다.

 

3. 비추천 주석은 제가 한게 아니라 위에 적어주실때 주석으로 되어 있던겁니다.

    제가 추가한건 위에 1,2번만 입니다.

 

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

답변에 대한 댓글 1개

바키라
7년 전
빠르고 친절한 답변 너무 감사 드립니다 충성

2. if 문이 제가 원하는 포인트가 다 깍여서 0 포인트가 되어 버리면

추천이던 비추천이던 눌러도 상대방도 안올라가고 본인 포인트도 -1 이런씩으로 계속 마이너스로 내려가지 않고 그냥 0에서 아무것도 못하도록 하고 싶은데요

이 전체적인 내용이 것이 맞는것인지요

충성

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

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

로그인