2011-12-05 7 views
-1

db 테이블에서 모든 값을 가져올 때이 오류가 마지막 결과 값에 나타납니다.오류 - 잘못된 행 오프셋

Warning: mssql_result() function.mssql-result: 
    Bad row offset (32) in C:\ms4w\Apache\htdocs\mapserver\data\.... on line 38 

행 38 :

$str = "MyMap_".mb_convert_encoding(mssql_result($result_set, $row, 0),"UTF-8","SJIS")."_".mb_convert_encoding(mssql_result($result_set, $row, 1),"UTF-8","SJIS"); 

내 설정 ($의 SQL, $ 콘) :

$con = mssql_connect ("myServer", "myUsername", "myPassword"); 
$sql = "SELECT * FROM m_group_layer WHERE group_id=\"".$_SESSION["group_id"]."\" ORDER BY display_order"; 
$rs_group_layer = mssql_query ($sql, $con); 
$group_layer_row = mssql_num_rows($rs_group_layer); 

/* 편집 :

기능 :

function getLayer($result_set, $row){ 
    $str = "MyMap_".mb_convert_encoding(mssql_result($result_set, $row, 0),"UTF-8","SJIS")."_".mb_convert_encoding(mssql_result($result_set, $row, 1),"UTF-8","SJIS"); 
    return "var ".$str.";\n\n"; 
} 

루프 :

for($i=0; $i<=$group_layer_row; $i++){ 
    echo getLayer($rs_group_layer, $i); 
} 

*/

는 솔직히 내가 무엇을이 오류이 정확히 모르겠습니다. 따라서 일반적으로이 오류의 원인에 대한 제안을 먼저받을 수 있다면 책임을 질 수있는 다른 코드가 있으면 필요에 따라 게시 할 것입니다.

도움 주셔서 감사합니다.

+0

'$ row'는 어디에서 왔습니까? – deceze

+0

또한 모든 단일 필드를 SJIS에서 UTF-8로 변환하는 대신 MySQL 연결 인코딩을 원하는 charset으로 설정하는 것이 더 쉽습니다. – deceze

+0

모든 제안을 주셔서 감사합니다, 나는 내 질문에 함수와 루프를 추가했습니다. @deceze, 고마워 할거야, 내 마음을 교차시키지 않았다. – Yus

답변

1

당신이 돌아 오는 3 개 라인이있는 경우, 마지막 인덱스가 2

편집해야하므로 인덱스 변수가 0으로 시작해야합니다, 당신의 메인 루프를 확인하십시오 =없이, 변경 for($i=0; $i<$group_layer_row; $i++){, 그것은 일반적인 실수이다

+0

예, $ i는 0부터 시작합니다. 감사합니다. – Yus

+0

몇 줄이 돌아 왔습니까? 마지막 $ i는 ...? 루프 내부에서'var_dump ($ i);'를하고 그것을 체크하십시오. –

+0

루프는 33 행을 반환해야합니다. 행 33 -> 2를 반환 한 다음 마지막 행에서이 오류를 제공합니다. – Yus