충성
컴맹이 사이트 하나 만들어서 이런저런거 시도 해보다가
회사에서도 맨날 졸고 매일 잠도 잘안자고 연구중입니다.
이번에 발생한 문제점은 다름아닌 추천 포인트제도를 사용해보려고 하는데
현재 제가 적용한 코드는 추천을하면 -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개 / 댓글 5개
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);
로 하시면 될듯합니다.
답변에 대한 댓글 3개
일단 추가된 $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');
충성
2. if 문이 제가 원하는 포인트가 다 깍여서 0 포인트가 되어 버리면
추천이던 비추천이던 눌러도 상대방도 안올라가고 본인 포인트도 -1 이런씩으로 계속 마이너스로 내려가지 않고 그냥 0에서 아무것도 못하도록 하고 싶은데요
--> 이 부분에서 문제는 보통 사람들은 mb_point가 0이라는거죠.
--> 위에 말씀데로라면 추천 기능 자체가 처음부터 안되는거죠. (그리고 깍여서 0 포인트가 됐다고 해서 추천을 못 받는다는것도 문제가 되지 않을까요?)
--> 그래서 위에 if을 비추천에만 걸어뒀던거죠.
--> 받아야 하는 사람이 0 포인트면 비추천을 할수 없도록요.
답변에 대한 댓글 1개
제가 추진하고자 하는 방향성은
추천 비추천에 중점을 두기 보다 우선 포인트에 초점을 두고 있는데요
사실 더 정확히 표현하자면 0포인트가 된사람은 레벨도 떨어지고 아에 사이트 활동 자체를 하지 못하도록 만들고 싶은것인데 그것이 제가 하기엔 첨부터 뭔가 다 새로 만들어야 하고 너무나도 어려울것같아서요.
일반 유명 커뮤니티 사이트에 보면 - 마이너스 포인트를 많이 받다보면 결국 레벨떨어지고 글도 못쓰고 이렇게 되잖아요.
그것처럼 저도 포인트가 깍여서 0 아래로 내려간사람은
추천을 줄수 없고 비추천도 줄수 없고 아무것도 못하는 상태로 만들어 버리고 싶은건데요
친절하게 코드까지 일일이 다 설명해 주셨는데
제가 저것들을 저의 생각에 맞게 조합을 잘하지 못하겠어요
제가 글을 잘못다보니 정확히 설명을 드렸는지 모르겠지만
한번만더 종합적인 정리를 좀 부탁드립니다.
충성
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번만 입니다.
답변을 작성하려면 로그인이 필요합니다.