추천 비추천 코드좀 도와주십시요 충성
본문
충성
컴맹이 사이트 하나 만들어서 이런저런거 시도 해보다가
회사에서도 맨날 졸고 매일 잠도 잘안자고 연구중입니다.
이번에 발생한 문제점은 다름아닌 추천 포인트제도를 사용해보려고 하는데
현재 제가 적용한 코드는 추천을하면 -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
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, $mb_id.'@nogood_re');
}
}
print_result($error, $count);
로 하시면 될듯합니다.
!-->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번만 입니다.
2. if 문이 제가 원하는 포인트가 다 깍여서 0 포인트가 되어 버리면
추천이던 비추천이던 눌러도 상대방도 안올라가고 본인 포인트도 -1 이런씩으로 계속 마이너스로 내려가지 않고 그냥 0에서 아무것도 못하도록 하고 싶은데요
--> 이 부분에서 문제는 보통 사람들은 mb_point가 0이라는거죠.
--> 위에 말씀데로라면 추천 기능 자체가 처음부터 안되는거죠. (그리고 깍여서 0 포인트가 됐다고 해서 추천을 못 받는다는것도 문제가 되지 않을까요?)
--> 그래서 위에 if을 비추천에만 걸어뒀던거죠.
--> 받아야 하는 사람이 0 포인트면 비추천을 할수 없도록요.
그럼 순서만 바꾸시면 됩니다.
$usr = sql_fetch(" select * from {$g5['member_table']} where mb_id='$write[mb_id]' ");
if ($usr['mb_point']){
// 원래 코드
}
이런식으로 usr를 먼저 호출하신후에 mb_point가 있을 경우에만 프로세스가 동작하도록 하면 됩니다.