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

어디 코딩이 잘못되었는지... 한번 봐 주실래요? 채택완료

검풍 5년 전 조회 1,112

---------/----------
$mode = ($_POST['mode']) ? $_POST['mode'] : $_GET['mode'];

$query ="UPDATE recomm2 SET tel='$tel' WHERE no='$no'";
$result = mysql_query($query);

if(!$result){
warmsg('신청되지 않았습니다.');
}
else{
warmsg_ok('신청 되었습니다.');
echo("
<script> opener.window.history.go(1); window.close(); </script>
");
exit;
}
mysql_close($connect);
---------/----------

매치가 될 경우
메시지도 잘뜨고 디비에도 업데이트가 잘 되는 데...

매치가 안 될 경우
메시지(신청되지 않았습니다.)가 뜨질 않습니다.
어디 코딩이 잘못되었나요?

 

해결 방법 좀 알려 줄래요?
감사드림.

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

답변 4개

채택된 답변
+20 포인트

SQL문법에 오류가 없기때문에

$result = mysql_query($query); 

 

이부분이 무조건 true로 반환되는것입니다.

update가 되었든, 안되었든, 쿼리를 실행했기 떄문이죠..

만약

"UPDATE recomm2abc SET tel='$tel' WHERE no='$no'";

이런식으로 쿼리문을 실행시키면 false가 나올겁니다..

 

update에서 조건문을 넣지마시고

 

select를 한번더 돌려서.. 값이 바뀌었는지로 조건문을 넣으셔야합니다..

 

---------/----------
$mode = ($_POST['mode']) ? $_POST['mode'] : $_GET['mode'];

$query ="UPDATE recomm2 SET tel='$tel' WHERE no='$no'";
$result = mysql_query($query);

$sql = "select * from recomm2 where no= '$no'";

$result = mysql_fetch($query);

if($result['tel'] == $tel){ //DB의 tel과, 입력받는 tel이 같다면 (업데이트가 되면 같아지겠죵..)

성공

}else{

실패

}

 

if(!$result){
warmsg('신청되지 않았습니다.');
}
else{
warmsg_ok('신청 되었습니다.');
echo("
<script> opener.window.history.go(1); window.close(); </script>
");
exit;
}
mysql_close($connect);
---------/----------

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

답변에 대한 댓글 1개

검풍
5년 전
매번 감사합니다.

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

cuwaaang
5년 전

if(!$result){          이건 결과값이없다는건데

결과값은 true false로 나오긴나오니까

트루체크를하던지 폴스체크를해야되지않을런지

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

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

$result를 echo로 확인해보세요

리턴값이 true false로 안떨어지고 string형태 에러코드가 떨어질수도있으니

 

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

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

5년 전

쿼리 실행 후 쿼리값이 변경되었는지 확인하는 sql문을 하나 더 추가하셔서 확인하세요

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

답변에 대한 댓글 1개

검풍
5년 전
감사합니다. 조금더 설명 좀 부탁해요.
이게 제 한계입니다.

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

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

로그인