I'm just starting so don't push me too hard

Entrance -----------
I'm trying to make on my machine (Win XP Home, PostgreSQL 8.2, Apache 2.2, ExtJs 3.3.1)
tutorial http://www.sencha.com/learn/Tutorial:Grid_PHP_SQL_Part3

Proper result You can see here http://w993.wrzuta.pl/obraz/powieksz/5utvI6Emhlu
Numbers in columns '#' and 'IDparty'

My problem You can see here http://w993.wrzuta.pl/obraz/powieksz/aPLT0biQgha
The only change i made is in 'database.php'. Just use PostgreSQL not mySql
PHP Code:
function getList()
{
    
$pgs = new postgresql('localhost''login''pass''postgres');
    
$result $pgs->sq"SELECT * "
        
" FROM presidents pr, parties pa "
        
"  WHERE pr.IDparty = pa.IDparty "
                      
);
    
$nbrows pg_num_rows($result);
    if(
$nbrows>0){
        while(
$rec pg_fetch_array($result)){
                        
// render the right date format
            
$rec['tookoffice']=codeDate($rec['tookoffice']);
            
$rec['leftoffice']=codeDate($rec['leftoffice']);
            
$arr[] = $rec;
        }
        
$jsonresult JEncode($arr);
        echo 
'({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
    } else {
        echo 
'({"total":"0", "results":""})';
    }

Result is correct. Checked in Firebug.

I'm using the same mainsript.js as tutorial's author

Code:
var PresidentsDataStore;
var PresidentsColumnModel;
var PresidentListingEditorGrid;
var PresidentListingWindow;

Ext.onReady(function(){

  Ext.QuickTips.init();

  PresidentsDataStore = new Ext.data.Store({
      id: 'PresidentsDataStore',
      proxy: new Ext.data.HttpProxy({
                url: 'database.php', 
                method: 'POST'
            }),
            baseParams:{task: "LISTING"}, // this parameter is passed for any HTTP request
      reader: new Ext.data.JsonReader({
        root: 'results',
        totalProperty: 'total',
        id: 'id'
      },[ 
        {name: 'IDpresident', type: 'int', mapping: 'IDpresident'},
        {name: 'FirstName', type: 'string', mapping: 'firstname'},
        {name: 'LastName', type: 'string', mapping: 'lastname'},
        {name: 'IDparty', type: 'int', mapping: 'IDparty'},
        {name: 'PartyName', type: 'string', mapping: 'name'},
        {name: 'TookOffice', type: 'date', mapping: 'tookoffice'},
        {name: 'LeftOffice', type: 'date', mapping: 'leftoffice'},
        {name: 'Income', type: 'float', mapping: 'income'}
      ]),
      sortInfo:{field: 'IDpresident', direction: "ASC"}
    });
    
  PresidentsColumnModel = new Ext.grid.ColumnModel(
    [{
        header: '#',
        readOnly: true,
        dataIndex: 'IDpresident',
        width: 50,
        hidden: false
      },{
        header: 'First Name',
        dataIndex: 'FirstName',
        width: 60,
        editor: new Ext.form.TextField({
            allowBlank: false,
            maxLength: 20,
            maskRe: /([a-zA-Z0-9\s]+)$/
          })
      },{
        header: 'Last Name',
        dataIndex: 'LastName',
        width: 80,
        editor: new Ext.form.TextField({
          allowBlank: false,
          maxLength: 20,
          maskRe: /([a-zA-Z0-9\s]+)$/
          })
      },{
        header: 'ID party',
        readOnly: true,
        dataIndex: 'IDparty',
        width: 50,
        hidden: true
      },{
        header: 'Party',
        dataIndex: 'PartyName',
        width: 150,
        readOnly: true
      },{
                header: 'Took Office',
                dataIndex: 'TookOffice',
                width: 80,
                renderer: Ext.util.Format.dateRenderer('m/d/Y'),
                editor: new Ext.form.DateField({
                    format: 'm/d/Y'
                }),
                hidden: false
        },{
                header: 'Left Office',
                dataIndex: 'LeftOffice',
                width: 80,
                renderer: Ext.util.Format.dateRenderer('m/d/Y'),
                editor: new Ext.form.DateField({
                    format: 'm/d/Y'
                }),
                hidden: false
        },{
        header: "Income",
        dataIndex: 'Income',
        width: 150,
        renderer: function(v){ return '$ ' + v; },
        editor: new Ext.form.NumberField({
          allowBlank: false,
          allowDecimals: true,
          allowNegative: false,
          blankText: '0',
          maxLength: 11
          })
      }]
    );
    PresidentsColumnModel.defaultSortable= true;
    
  PresidentListingEditorGrid =  new Ext.grid.EditorGridPanel({
      id: 'PresidentListingEditorGrid',
      store: PresidentsDataStore,
      cm: PresidentsColumnModel,
      enableColLock:false,
      clicksToEdit:1,
      selModel: new Ext.grid.RowSelectionModel({singleSelect:false})
    });
    
  PresidentListingWindow = new Ext.Window({
      id: 'PresidentListingWindow',
      title: 'The Presidents of the USA',
      closable:true,
      width:700,
      height:350,
      plain:true,
      layout: 'fit',
      items: PresidentListingEditorGrid
    });
  
  PresidentsDataStore.load();
  PresidentListingWindow.show();
});


Response from 'database.php' is have correct, there are numbers, not zeroes. Checked in Firebug.

I use ext-all.css, ext-base.js, ext-all.js given by ExtJs 3.3.1
Author used ExtJs 2.0.2 and gives his version of : ext-all.css, ext-base.js, ext-all.js (when i used that i had just blanks, not even zeroes)

I tried all combinations:
ExtJs 2.0.2 + 2.0.2 (ext-all.css, ext-base.js, ext-all.js) -> blanks
ExtJs 2.0.2 + authors (ext-all.css, ext-base.js, ext-all.js) -> blanks
ExtJs 3.3.1 + authors (ext-all.css, ext-base.js, ext-all.js) -> blanks
ExtJs 3.3.1 + 3.3.1 (ext-all.css, ext-base.js, ext-all.js) -> zeroes

Please help me. I want my int's