질문입니다. 정보
그누보드 질문입니다.
본문
// 문제의 답안소스
<!-- write_ok.php 입니다. -->
<? include 'dbcon.inc' ?>
<?
if(!$no){
$max2=mysql_query("select max(no) from guesta");
$rs2=mysql_fetch_array($max2);
if(!$rs2[0]){
$no=1;
}else{
$no=$rs2[0]+1;
$ref=1;
}
}else{
$max2=mysql_query("select ref from guesta where no=$no");
$rs2=mysql_fetch_array($max2);
$ref=$rs2[0]+1;
}
//date 변수에 해당 date값 대입
$date=date("Y-m-d");
$ip_add=$REMOTE_ADDR;
//태그 제거
$title=htmlspecialchars($title);
$irum=htmlspecialchars($irum);
$content=htmlspecialchars($content);
// 쿼리 insert문으로 해당 내용 추가
mysql_query("insert into guesta(no,irum,pass,title,content,date,ip_add,hit,ref) values($no,'$irum','$pass','$title','$content','$date','$ip_add',0,$ref)");
?>
<? mysql_close($connect)?>
<? echo $no,$irum,$pass,$title,$content,$date,$ip_add,0,$ref; ?> //값이 들어왔는지 확인 추후삭제
<script>
location.replace('view.php')
</script>
//문제의 답안소스 끝
게시판 답글달기를 연구중에 위 소스중에 $ref값이 말썽인거 같아서요.
보통 값이 없을경우 db에서 알아서 0이라는 값이 넘어간다고 하던데..
위 소스중 $ref를 강제로 1이라는 숫자를 주면 insert 쿼리문이 적용됩니다.
그런데 위 소스를 적용하면 아무런 데이터가 입력되지 않네요.
다시 1을 대입하면 되구..
위소스는 답안소스입니다. (책) 그런데 안되네요 ;;
가장 궁금한 것은요. (이게 하일라이트임)
// << 궁금한 부분쪽에 있는
if(!$rs2[0]){ // 궁금한 부분 <<<<
$no=1;
}else{
$no=$rs2[0]+1;
$ref=1;
}
위 부분입니다.
그 위쪽에 if(!$no)라고 if 에 $no에 값이 없으면 이것을 실행해라고 했는데
else{
$no=$rs2[0]+1;
$ref=1;
}
위 else문이 실행되는지 궁금하군요.
if(!$no) 요기에 만족하면
if(!$rs2[0]) 요것이 실행될것이고 분명 $no=1; 이렇게 no에 값이 드러갑니다.
그런데 아래쪽의 else는 if(!$no) 가 만족하지 않으니 아래족에 있는 }else{
$max2=mysql_query("select ref from guesta where no=$no");
$rs2=mysql_fetch_array($max2);
$ref=$rs2[0]+1;
가 실행될거같은데요..
고수님의 답변좀.. 소스는 정답안입니다. 책안에있는...
<!-- write_ok.php 입니다. -->
<? include 'dbcon.inc' ?>
<?
if(!$no){
$max2=mysql_query("select max(no) from guesta");
$rs2=mysql_fetch_array($max2);
if(!$rs2[0]){
$no=1;
}else{
$no=$rs2[0]+1;
$ref=1;
}
}else{
$max2=mysql_query("select ref from guesta where no=$no");
$rs2=mysql_fetch_array($max2);
$ref=$rs2[0]+1;
}
//date 변수에 해당 date값 대입
$date=date("Y-m-d");
$ip_add=$REMOTE_ADDR;
//태그 제거
$title=htmlspecialchars($title);
$irum=htmlspecialchars($irum);
$content=htmlspecialchars($content);
// 쿼리 insert문으로 해당 내용 추가
mysql_query("insert into guesta(no,irum,pass,title,content,date,ip_add,hit,ref) values($no,'$irum','$pass','$title','$content','$date','$ip_add',0,$ref)");
?>
<? mysql_close($connect)?>
<? echo $no,$irum,$pass,$title,$content,$date,$ip_add,0,$ref; ?> //값이 들어왔는지 확인 추후삭제
<script>
location.replace('view.php')
</script>
//문제의 답안소스 끝
게시판 답글달기를 연구중에 위 소스중에 $ref값이 말썽인거 같아서요.
보통 값이 없을경우 db에서 알아서 0이라는 값이 넘어간다고 하던데..
위 소스중 $ref를 강제로 1이라는 숫자를 주면 insert 쿼리문이 적용됩니다.
그런데 위 소스를 적용하면 아무런 데이터가 입력되지 않네요.
다시 1을 대입하면 되구..
위소스는 답안소스입니다. (책) 그런데 안되네요 ;;
가장 궁금한 것은요. (이게 하일라이트임)
// << 궁금한 부분쪽에 있는
if(!$rs2[0]){ // 궁금한 부분 <<<<
$no=1;
}else{
$no=$rs2[0]+1;
$ref=1;
}
위 부분입니다.
그 위쪽에 if(!$no)라고 if 에 $no에 값이 없으면 이것을 실행해라고 했는데
else{
$no=$rs2[0]+1;
$ref=1;
}
위 else문이 실행되는지 궁금하군요.
if(!$no) 요기에 만족하면
if(!$rs2[0]) 요것이 실행될것이고 분명 $no=1; 이렇게 no에 값이 드러갑니다.
그런데 아래쪽의 else는 if(!$no) 가 만족하지 않으니 아래족에 있는 }else{
$max2=mysql_query("select ref from guesta where no=$no");
$rs2=mysql_fetch_array($max2);
$ref=$rs2[0]+1;
가 실행될거같은데요..
고수님의 답변좀.. 소스는 정답안입니다. 책안에있는...
댓글 전체