어디 코딩이 잘못되었는지... 한번 봐 주실래요?
본문
---------/----------
$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
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);
---------/----------
쿼리 실행 후 쿼리값이 변경되었는지 확인하는 sql문을 하나 더 추가하셔서 확인하세요
$result를 echo로 확인해보세요
리턴값이 true false로 안떨어지고 string형태 에러코드가 떨어질수도있으니
if(!$result){ 이건 결과값이없다는건데
결과값은 true false로 나오긴나오니까
트루체크를하던지 폴스체크를해야되지않을런지