2012-09-17 2 views
1

Oracle 데이터베이스에서 jqgrid를 사용하고 있습니다. 근본적인 문제는 데이터베이스 테이블에 정보를 표시하는 것뿐만 아니라 모든 것이 정확하다는 것입니다. 나를 도울 수있는 모든 코드를 남겨두고 있습니다. "총"2 :Oracle 데이터베이스가있는 jQGrid

{ "페이지"

book.php

<?php 
    //database setting 
    $dbuser='system'; 
    $dbpassword='manager'; 
    $database='orcl'; 
    $page = 2; 
    // get the requested page 
    $limit = 10; 
    // connect to the database 
    $db = oci_connect($dbuser, $dbpassword, $database) or die("Connection Error: " . oci_error()); 
    $result = oci_parse($db, 'SELECT COUNT(*) AS count from aaz'); 
    oci_execute($result); 

    $row = oci_fetch_array ($result); 
    $count = $row[0]; 
    if($count > 0) 
    { 
     $total_pages = ceil($count/$limit); 
    } 
    else { 
     $total_pages = 0; 
    } 

    if ($page > $total_pages) $page=$total_pages; 
    $start = $limit*$page - $limit; // do not put $limit*($page - 1) 
    $SQL = "SELECT * FROM aaz where rownum <=$limit ORDER BY id"; 
    $result = oci_parse($db, $SQL) or die("Couldn t execute query.".oci_error());  
    oci_execute($result); 

    $responce->page = $page; 
    $responce->total = $total_pages; 
    $responce->records = $count; 
    $i=0; 
    while($row = oci_fetch_array($result,OCI_ASSOC)) 
    { 
     $responce->rows[$i]['id']=$row[ID]; 
     $responce->rows[$i]['cell']=array($row[ID],$row[FIRSTNAME],$row[LASTNAME],$row[PHONE],$row[EMAIL]); 
     $i++; 
    } 
    echo json_encode($responce);  
?> 

index.php를

<html> 
<head> 
<title>jQGrid example</title> 
<!-- Load CSS--><br /> 
<link rel="stylesheet" href="css/ui.jqgrid.css" type="text/css" media="all" /> 
<!-- For this theme, download your own from link above, and place it at css folder --> 
<link rel="stylesheet" href="css/ui-lightness/jquery-ui-1.8.23.custom.css" type="text/css" media="all" /> 
<!-- Load Javascript --> 
<script src="js/jquery-1.7.2.min.js" type="text/javascript"></script> 
<script src="js/jquery-ui-1.8.23.custom.min.js" type="text/javascript"></script> 
<script src="js/i18n/grid.locale-pt.js" type="text/javascript"></script> 
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script> 
</head> 
<body> 
    ... 
<table id="datagrid"></table> 
<div id="navGrid"></div> 
<p><script language="javascript"> 
jQuery("#datagrid").jqGrid({ 
    url:'book.php', 
    datatype: 'json', 
    colNames:['ID','Nome', 'Apelido', 'Telefone','Email'], 
    colModel:[ 
     {name:'ID',index:'ID', width:155,editable:false,editoptions:{readonly:true,size:10}}, 
     {name:'FIRSTNAME',index:'FIRSTNAME', width:180,editable:true,editoptions:{size:10}}, 
     {name:'LASTNAME',index:'LASTNAME', width:190,editable:true,editoptions:{size:25}}, 
     {name:'PHONE',index:'PHONE', width:160, align:"right",editable:true,editoptions:{size:10}}, 
     {name:'EMAIL',index:'EMAIL', width:160, align:"right",editable:true,editoptions:{size:10}} 
    ], 
    rowNum:10, 
    rowList:[10,15,20,25,30,35,40], 
    pager: '#navGrid', 
    sortname: 'no', 
    sortorder: "asc", 
    height: 210, 
    viewrecords: true, 
    caption:"Example" 
}); 
jQuery("#datagrid").jqGrid('navGrid','#navGrid',{edit:true,add:true,del:true}); 
</script> 
</body> 
</html> 

내가 할 대답은 book.php이다 2 "레코드": "12", "행": [{ "id": "1", "셀": [ "1", "fname1", "lname1", "(000) 000-0000" [email protected] "]}, {"id ":"2 ","cell ": ["2 ","fname1 ","lname1 ","(000) 000-0000 ","[email protected] " "}}, {"id ":"3 ","셀 ":" "3", "fname1", "lname1", "(000) 000-0000", "[email protected]" "신분증" "4", "fname1", "lname1", "(000) 000-0000", "[email protected]"]}, { "id": "5", " "cell": [ "5", "fname1", "lname1", "(000) 000-0000", "[email protected]"]}, { "id": "6" "6", "fname1", "lname1", "(000) 000-0000", "[email protected]"]}, { "id": "7", "cell": [ "7" ("000"000-0000 ","[email protected] "]}, {"id ":"8 ","셀 ": ["8 ","fname1 ","lname1 " ","(000) 000-0000 ","[email protected] "]}, {"id ":"9 ","셀 ":" "9", "fname1", "lname1", "(000 ("000"000-0000 ","[email protected] "]}, {"id ":"10 ","cell ":"10 ","fname1 ","lname1 " , "[email protected]"]}]}

나를 도와 줄 사람이 있습니까? 나는, 행운을 돕기 위해 희망

SELECT * FROM 
    (
     SELECT/* + FIRST_ROWS (n) */*, ROWNUM rnum FROM (our query) 
WHERE ROWNUM <= limit-sup 
    ) 
WHERE rnum > = limit-inf; 

을 :

+0

Plz 도움이 필요합니다. – zmki

답변

1

는 페이징 쿼리를 변경하려고 페이지 된 데이터에 대한 쿼리에 문제가 있습니다.

관련 문제