2013-05-03 3 views
0

До сих пор я использовал jqgrid с mysql и php. Мой код адаптирован к примерам, приведенным на сайте jqGrid Demos.
Данные, предоставленные яваскрипта части являются:jqgrid pagination with postgresql

  • страница = 1
  • строк = 8
  • Sord = возрастанию

    $page = $_GET['page']; // get the requested page 
    $limit = $_GET['rows']; // get how many rows we want to have into the grid 
    $sidx = $_GET['sidx']; // get index row - i.e. user click to sort 
    $sord = $_GET['sord']; // get the direction 
    if(!$sidx) $sidx =1; // connect to the database  
    $connection = mysql_connect($serveur,$user,$password); 
    $db = mysql_select_db($bdd, $connection); 
    mysql_query("set names 'utf8'"); 
    $query = "SELECT COUNT(*) AS count FROM Preferences WHERE (Id_Membre ='$idm')"; 
    $result = mysql_query($query,$connection); 
    $row = mysql_fetch_array($result); 
    $count = $row['count']; 
    if($count > 0 && $limit > 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) 
    if ($start<0) $start = 0; 
    $query = "select * from Preferences where (Id_Membre ='$idm') order by $sidx $sord LIMIT $start , $limit"; 
    $result = mysql_query($query, $connection); 
    

Последний запрос возвращает 4 строки.

Это тот же код, который был адаптирован для Postgresql. С теми же данными этот код ничего не возвращает!

$page = $_GET['page']; // get the requested page 
    $limit = $_GET['rows']; // get how many rows we want to have into the grid 
    $sidx = $_GET['sidx']; // get index row - i.e. user click to sort 
    $sord = $_GET['sord']; // get the direction 
    if (!$sidx) $sidx =1; // connect to the database  
    $connection = pg_connect($con); 

    pg_query($connection,"set names 'utf8'"); 
    $query = "SELECT COUNT(*) AS count FROM preference WHERE (id_membre ='$idm')"; 
    $result = pg_query($connection,$query); 
    $row = pg_fetch_array($result); 
    $count = $row['count']; 
    if($count > 0 && $limit > 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) 
    if ($start<0) $start = 0; 
    $query = "select * from preference where (id_membre ='$idm') order by $sidx $sord LIMIT $start OFFSET $limit"; 
    $result = pg_query($connection,$query);  

Любые идеи? я подумал, что предел 0,8 becomed предел 0 смещение 8

ответ

1

предела 0,8 в MySQL означает предела 8 смещение 0 в Postgres.

$query = "select * from preference where (id_membre ='$idm') 
    order by $sidx $sord LIMIT $limit OFFSET $start"; 
+0

ограничение $ a, $ b означает ограничение $ b offset $ a. Некоторые пользователи stackoverflow дают обратное! – Bertaud