매치 게시판 질문 드립니다.

매치 게시판 질문 드립니다.

QA

매치 게시판 질문 드립니다.

답변 3

본문

예를 들어

남자 20명, 여자 20명이 소개팅을 한다고 가정을 하겠습니다.

서로 호감이 가는 사람을 매칭하는 게시판을 만들여고 합니다.

어떻게 하면 좋을까요?

감사합니다.

이 질문에 댓글 쓰기 :

답변 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. 호감 표시 처리

 

 

<?php
include_once('./_common.php');

// 로그인 체크
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. 매칭결과 페이지 예시

 

 

<?php
include_once('./_common.php');

// 로그인 체크
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');
?>

<div class="matching-results">
    <h2>매칭 결과</h2>
    
    <?php if (sql_num_rows($result) > 0) { ?>
        <div class="matched-members">
            <h3>상호 호감이 확인된 회원</h3>
            <ul>
            <?php for ($i=0; $row=sql_fetch_array($result); $i++) { ?>
                <li>
                    <div class="member-info">
                        <strong><?php echo $row['mb_nick']; ?></strong>
                        <a href="<?php echo G5_BBS_URL ?>/memo_form.php?me_recv_mb_id=<?php echo $row['mb_id'] ?>" class="btn btn-primary">쪽지 보내기</a>
                    </div>
                </li>
            <?php } ?>
            </ul>
        </div>
    <?php } else { ?>
        <p class="text-center">아직 매칭된 회원이 없습니다.</p>
    <?php } ?>
</div>

<?php
include_once(G5_PATH.'/tail.php');
?>

 

 

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 4
© SIRSOFT
현재 페이지 제일 처음으로