답변 3개
아래의 예제 코드를 한번 참고를 해보세요.
1. 테이블 생성
CREATE TABLE g5_dating_likes ( id INT(11) NOT NULL AUTO_INCREMENT, from_mb_id VARCHAR(20) NOT NULL, to_mb_id VARCHAR(20) NOT NULL, reg_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY unique_like (from_mb_id, to_mb_id) );
2. 호감 표시 처리
// 로그인 체크 if (!$is_member) { alert('로그인 후 이용해주세요.', G5_BBS_URL.'/login.php'); }
$to_mb_id = isset($_POST['to_mb_id']) ? trim($_POST['to_mb_id']) : '';
if (empty($to_mb_id)) { alert('대상 회원이 지정되지 않았습니다.'); }
// 자기 자신에게는 호감 표시 불가 if ($to_mb_id == $member['mb_id']) { alert('자기 자신에게는 호감을 표시할 수 없습니다.'); }
// 호감 정보 저장 $sql = " INSERT INTO g5_dating_likes SET from_mb_id = '{$member['mb_id']}', to_mb_id = '{$to_mb_id}', reg_date = NOW() ON DUPLICATE KEY UPDATE reg_date = NOW() "; sql_query($sql);
// 상호 호감 체크 $sql = " SELECT COUNT(*) as cnt FROM g5_dating_likes WHERE from_mb_id = '{$to_mb_id}' AND to_mb_id = '{$member['mb_id']}' "; $row = sql_fetch($sql);
if ($row['cnt'] > 0) { // 상호 호감이 확인된 경우 alert('매칭이 성사되었습니다!', G5_BBS_URL.'/dating_match.php'); } else { // 단방향 호감만 표시된 경우 alert('호감을 표시했습니다.', G5_HTTP_BBS_URL.'/board.php?bo_table=dating_profiles'); } ?>
3. 매칭결과 페이지 예시
// 로그인 체크 if (!$is_member) { alert('로그인 후 이용해주세요.', G5_BBS_URL.'/login.php'); }
// 상호 호감 회원 목록 가져오기 $sql = " SELECT B.mb_id, B.mb_nick, B.mb_name, B.mb_email FROM g5_dating_likes A JOIN g5_dating_likes B ON A.from_mb_id = B.to_mb_id AND A.to_mb_id = B.from_mb_id JOIN g5_member C ON B.from_mb_id = C.mb_id WHERE A.from_mb_id = '{$member['mb_id']}' ORDER BY B.reg_date DESC "; $result = sql_query($sql);
$g5['title'] = '매칭 결과'; include_once(G5_PATH.'/head.php'); ?>
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인