묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
배열에 관한 질문입니다.....
2002.04.10 21:02
전에도 비슷한 질문을 올렸었는데 또 올리게 되어서 죄송하네요~~
그래도 저번보단 발전된 질문이니 잘 좀 봐주세요~~~^ㅇ^
1. 다음과 같은 값을 다음 페이지로 넘겨서 배열로 받을려고 합니다. 그런데 name="IDX" 이 부분을 꼭 name="IDX[]" 이렇게 표현해야만 하는건가요?
<input type="text" name="IDX" value="1">
<input type="text" name="IDX" value="2">
<input type="text" name="IDX" value="3">
제가 사용하는 스크립트 중에서...IDX를 배열로 체크하는 부분이 있는데 그 부분과 충돌하더군요..
var flag=0;
l=document.list.IDX.length;
for (i=0;i<l;i++) {
if (document.list.IDX[i].checked) {
flag++;
}
}
2. 일단 위의 문제는 제쳐두고 IDX[]라는 변수명을 사용해서 다음 페이지로 데이터를 넘기는데 결과값이 이상하게 나오는군요.
<?
$total=sizeof($IDX);
$i=0;
while($i<$total)
// $qry = "UPDATE T_SCHOOL_STAT SET SCH_NAME = '$SCH_NAME[$i]' WHERE IDX = '$IDX[$i]'";
// $oci->parseExec($qry);
$i++;
?>
<? echo $total ?> : <? echo $IDX ?> : <? echo $SCH_NAME ?>
이렇게 하면 total값은 정상적으로 나옵니다.
그런데 <? echo $IDX ?>와 <? echo $SCH_NAME ?>은 Array로만 나오네요..왜 그럴까요?
제가 배열을 잘못 받아서일까요?
그리고 만약에 저 위의 소스중에서 주석처리 한 부분처럼 하면 정상적으로 업데이트가 될까요?
3. 마지막으로 다음과 같은 소스가 무한루프 도는 이유는 무엇일까요?
<?
$total=sizeof($IDX);
$i=0;
while($i<$total)
?>
<? echo $total[i] ?>
<?
$i++;
?>
php 초짜가 실력도 안되면서 너무 어려운 것에 손댄건 아닌가 걱정이 되네요...
대충 개념은 알겠는데 세세한 부분에서 기초가 부족하다보니 많이 막히는군요...
고수 여러분들의 많은 도움 부탁드리겠습니다....^ㅇ^
그래도 저번보단 발전된 질문이니 잘 좀 봐주세요~~~^ㅇ^
1. 다음과 같은 값을 다음 페이지로 넘겨서 배열로 받을려고 합니다. 그런데 name="IDX" 이 부분을 꼭 name="IDX[]" 이렇게 표현해야만 하는건가요?
<input type="text" name="IDX" value="1">
<input type="text" name="IDX" value="2">
<input type="text" name="IDX" value="3">
제가 사용하는 스크립트 중에서...IDX를 배열로 체크하는 부분이 있는데 그 부분과 충돌하더군요..
var flag=0;
l=document.list.IDX.length;
for (i=0;i<l;i++) {
if (document.list.IDX[i].checked) {
flag++;
}
}
2. 일단 위의 문제는 제쳐두고 IDX[]라는 변수명을 사용해서 다음 페이지로 데이터를 넘기는데 결과값이 이상하게 나오는군요.
<?
$total=sizeof($IDX);
$i=0;
while($i<$total)
// $qry = "UPDATE T_SCHOOL_STAT SET SCH_NAME = '$SCH_NAME[$i]' WHERE IDX = '$IDX[$i]'";
// $oci->parseExec($qry);
$i++;
?>
<? echo $total ?> : <? echo $IDX ?> : <? echo $SCH_NAME ?>
이렇게 하면 total값은 정상적으로 나옵니다.
그런데 <? echo $IDX ?>와 <? echo $SCH_NAME ?>은 Array로만 나오네요..왜 그럴까요?
제가 배열을 잘못 받아서일까요?
그리고 만약에 저 위의 소스중에서 주석처리 한 부분처럼 하면 정상적으로 업데이트가 될까요?
3. 마지막으로 다음과 같은 소스가 무한루프 도는 이유는 무엇일까요?
<?
$total=sizeof($IDX);
$i=0;
while($i<$total)
?>
<? echo $total[i] ?>
<?
$i++;
?>
php 초짜가 실력도 안되면서 너무 어려운 것에 손댄건 아닌가 걱정이 되네요...
대충 개념은 알겠는데 세세한 부분에서 기초가 부족하다보니 많이 막히는군요...
고수 여러분들의 많은 도움 부탁드리겠습니다....^ㅇ^
댓글 4
-
Legend
2002.04.10 23:13
-
백두
2002.04.11 00:31
Legend 님~// 예~~ 답변 정말 감사드립니다.....
한 가지만 더 여쭈어 보겠습니다...
$qry = "UPDATE T_SCHOOL_STAT SET SCH_NAME = '$SCH_NAME[$i]' WHERE IDX = '$IDX[$i]'";
$oci->parseExec($qry);
이 업데이트 문에 문제는 없는건지요~~?
다시 한 번 답변해 주신것 정말 감사드립니다...^ㅡ^ -
탐그루
2002.04.11 15:30
문제 없음 -
TryZ
2002.04.11 17:45
업데이트문 문제 없는것 처럼 보이지만 저렇게 하면 안 됩니다. 저도 그것때문에 한참 해멨죠...
방법은... 끊어주시면 됩니다.
$qry = "UPDATE T_SCHOOL_STAT SET SCH_NAME = '$SCH_NAME[$i]' WHERE IDX = '$IDX[$i]'";
이거를
$qry = "UPDATE ".T_SCHOOL_STAT." SET SCH_NAME = '$SCH_NAME[$i]' WHERE IDX = '$IDX[$i]'";
이렇게 말이죠... 그럼 열심히 하세요~
2번 배열 변수는 바로 출력하시면 당연히 Array로만 표시됩니다. $IDX[0]과 같이 특정 키 값을 주어야지
내용이 출력되지요.. 배열을 전부 출력할려면 배열을 합치셔서 출력하셔야 합니다.
3번은 중괄호가 없어서 에코부분만을 반복하고 $i++을 실행하지 않아서 그럽니다.
아래와 같이 하시면 되겟지요..
<?
$total=sizeof($IDX);
$i=0;
while($i<$total){
echo $total[i]
$i++;
}
?>