2012-09-17 117 views
1

我正在使用jqgrid和oracle數據庫。根本問題是,看起來一切都是正確的,不僅在數據庫表中顯示信息。我在這裏留下所有可能幫助我的代碼。jQGrid與Oracle db

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, 「總」:2 「記載」: 「12」, 「行」:[{ 「ID」 爲 「1」, 「細胞」:[ 「1」, 「fname1」, 「lname1」, 「(000)000-0000」,」 [email protected] 「]},{」 ID 「:」 2" , 「細胞」:[ 「2」, 「fname1」, 「lname1」, 「(000)000-0000」,「[email protected] 「]},{」 ID 「:」 3" , 「細胞」:[ 「3」, 「fname1」, 「lname1」, 「(000)000-0000」, 「[email protected]」]},{ 「ID」 : 「4」, 「細胞」:[ 「4」, 「fname1」, 「lname1」, 「(000)000-0000」, 「[email protected]」]},{ 「ID」: 「5」, 「細胞」:[ 「5」, 「fname1」, 「lname1」, 「(000)000-0000」, 「[email protected]」]},{ 「ID」: 「6」, 「細胞」:[ 「6」, 「fname1」, 「lname1」, 「(000)000-0000」, 「[email protected]」]},{ 「ID」: 「7」, 「細胞」:[ 「7」,」 fname1" , 「lname1」, 「(000)000-0000」, 「[email protected]」]},{ 「ID」: 「8」, 「細胞」:[ 「8」, 「fname1」,「lname1 「 」(000)000-0000「, 」[email protected]「]},{ 」ID「: 」9「, 」細胞「:[ 」9「, 」fname1「, 」lname1「,」(000 )000-0000" , 「[email protected]」]},{ 「id爲」: 「10」, 「小區」:[ 「10」, 「fname1」, 「lname1」, 「(000)000-0000」 ,「[email protected]」]}]}

有人可以幫助我嗎?

+0

Plz我需要幫助 – zmki

回答

1

沒有與查詢分頁數據的問題,請嘗試更改查詢分頁:

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

我希望能幫助,祝你好運。