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

로그기록을 만들었는 데... 같은값이 2개씩 등록됩니다. 채택완료

    $user_no = $_GET["user_id"];

    $name = $_GET["name"];

    $item_name = $_GET["item_name"];</p>

<p>

    if( $db->insert("edu_log", "

        num='$user_no',

        name='$name',

        item_name='테스트',

        item_num='$logd_name',

        regdate= now() "));
 

 

아래 이미지를 보시면 동일 데이타 가 한번에 두개씩 등록됩니다.

왜그런지 이유 좀 알려줄래요?

 

 

감사드림.

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

답변 4개

채택된 답변
+20 포인트

$_GET은 URL에 동일 매개변수가 두 번 이상 포함되어 있으면 배열로 처치될가능성이 많습니다. 이럴땐 변수를 변경 해보면 알수 알수있을것 같네요  

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

답변에 대한 댓글 4개

한번 실행됩니다.
감사합니다.
아니요
해결 못했습니다.
$user_no = $_GET["user_id"][0];
$name = $_GET["name"][0];
$item_name = $_GET["item_name"][0];
요래 한번해보세요 두번 인서트 되는걸 막아줄꺼에요

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

감사합니다. 뭘 해도 안되눈군요.

GROUP BY regdate

이렇게 해서 중복값중 하나만 가져오는걸로 처리했네요. 

주말 잘 보내세요.

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

답변에 대한 댓글 2개

그래도 혹시몰르니 GROUP BY regdate 쓰는 것을 자재하시고 리솔트를 한번 해봐서 원인을 찾아보는게 낮을 듯 합니다.

$result = $db->insert("edu_log", "
num='$user_no',
name='$name',
item_name='테스트',
item_num='$logd_name',
regdate= now() ");

if ($result) {
echo "데이터가 성공적으로 저장되었습니다.";
} else {
echo "데이터 저장에 실패했습니다. 관리자에게 문의해주세요.";
echo "오류 메시지: " . $db->lastErrorMsg();
}
감사합나다. 안되는군요
저장 메시지도 한번 잘뜨고 근데 동일 날짜가 중복 등록됨. 이유를모르겠네요.

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

현 코드 맨 위에 echo "한번만 실행되나 검사!"; 이코드를 삽입하고 테스트해보세요.

만일 위의 텍스트가 두번 출력되어지면 분명 두번 실행된다는것을 의미합니다.

만일 그렇지 않다면 DB쪽 문제일 가능성이 큽니다. 그런 경우 해당 디비와 테이블의 구조에 대한 구체적인 분석이 필요할거 같습니다.

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

답변에 대한 댓글 7개

한번 실행됩니다.
감사합니다.
방법을 모르겠네요.
그러면 중복삽입을 막기 위해 unique와 같은 index설정을 해주어야 할거 같습니다.
num, name, item_name, item_num 이렇게 4개의 필드로 조합된 unique index를 설정하면 중복삽입문제는 해결되나.... 여전히 왜 중복삽입되는지는 이상하군요,
index설정시 하나 등록 후 추가 등록이 안됩니다.
어렵군요. 디비 문제인가요?
감사드림.
num, name, item_name, item_num 을 조합해서 unique를 작성하셨나요?
그리고
var_dump($_GET["user_id"]);
이부분을 확인부탁드립니다, 어떤 결과가 출력되는지
네 안됩니다.
index 계속 중복되고
unique 조합시 하나 등록이후 추가 안됩니다.
번호가 그대로 노출됩니다.

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

해당 페이지가 2번 호출이 되는거 같습니다.

저장되는 부분을 점검하시면 될듯합니다.

 

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

답변에 대한 댓글 3개

아... 감사합니다.
확인 해 보죠.
만약에 그렇다면 .............

$user_no = $_GET["user_id"][0];
$name = $_GET["name"][0];
$item_name = $_GET["item_name"][0];
요래 한번해보세요 두번 인서트 되는걸 막아줄꺼에요
안됩니다.
관심 감사드립니다.

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

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

로그인

전체 질문 목록