Otóż gdy chcę pobrać listę rekordów z tabeli i jest problem. Odnoszę wrażenie, jakby wynik zwracany był zbyt duży, choć już sam nie wiem.
Tabela ma następujące pola :
Kod
ID_KATEGORII, ID_MAGAZYNU, KOD_VAT, NAZWA, NUMER_DZIALU, MASKA_I_KATALOG, MASKA_I_HANDL, ID_DOMYSLNEJ_CENY, SEMAFOR, FLAGA_STANU, KONTO_FK_KATEGORII, KOD_VAT_ZAK, GUID_KATEGORIA, POLE1, POLE2, POLE3, POLE4, POLE5, POLE6, POLE7, POLE8, POLE9, POLE10
Kontroler wygląda tak :
<?php class Product_Controller extends Controller { private $template; private $model; private $limit = 12; public function __construct() { parent::__construct(); $this->template = new View('layout/layout'); $this->model = new Product_Model; } public function list_product() { $this->template->title = 'Lista produktów'; $category = $this->model->list_category(); $this->template->content = new View('product/list'); $this->template->content->category = $category; $this->template->render(true); } } ?>
Model :
<?php class Product_Model extends Model { public function list_category() { $result = $this->db ->select('*') ->from('kategoria_artykulu') ->get(); return $result; } ?>
Widok tak :
<?php foreach($category->result_array(false) as $key=>$row) { } ?>
Wywołanie metody list_product() z kontrolera Product, daje taki rezultat :
Jest problem po prostu gdy dam w SELECT *, to nie zwraca puste tablice, aczkolwiek ich liczba jest równa liczbie rekordów.
Gdy dam zamiast "*", listę pól to zwraca wynik. Ale gdy podam listę wszystkich pól, zwraca taki sam wynik jak przy "SELECT *".
Już nie wiem w czym jest problem.
Gdy zmienię w modelu kod funkcji na:
public function list_category() { $result = $this->db ->select('ID_KATEGORII','NAZWA') ->from('kategoria_artykulu') ->get(); return $result; }
to dostaję następujący wynik(powinien zwrócić 3rekordy)
( [ID_KATEGORII] => 2 [NAZWA] => Kategoria ) ( [ID_KATEGORII] => 4 [NAZWA] => Motoryzacja )
I zwraca 3, z tym że pierwszy rekord jest pusty. Nie wiem już, czy to moja nie wiedza o czymś powoduje to;)
Jest to uruchamiane na localhoscie(xampp 1.7.0). Serwer baz mssql to MS SQL Server 2005. W php.ini dla mssql jest ustawione tak(domyślne wartości):
Kod
[MSSQL]
; Allow or prevent persistent links.
mssql.allow_persistent = On
; Maximum number of persistent links. -1 means no limit.
mssql.max_persistent = -1
; Maximum number of links (persistent+non persistent). -1 means no limit.
mssql.max_links = -1
; Minimum error severity to display.
mssql.min_error_severity = 10
; Minimum message severity to display.
mssql.min_message_severity = 10
; Compatability mode with old versions of PHP 3.0.
mssql.compatability_mode = Off
; Connect timeout
;mssql.connect_timeout = 5
; Query timeout
;mssql.timeout = 60
; Valid range 0 - 2147483647. Default = 4096.
;mssql.textlimit = 4096
; Valid range 0 - 2147483647. Default = 4096.
;mssql.textsize = 4096
; Limits the number of records in each batch. 0 = all records in one batch.
;mssql.batchsize = 0
; Specify how datetime and datetim4 columns are returned
; On => Returns data converted to SQL server settings
; Off => Returns values as YYYY-MM-DD hh:mm:ss
;mssql.datetimeconvert = On
; Use NT authentication when connecting to the server
; Allow or prevent persistent links.
mssql.allow_persistent = On
; Maximum number of persistent links. -1 means no limit.
mssql.max_persistent = -1
; Maximum number of links (persistent+non persistent). -1 means no limit.
mssql.max_links = -1
; Minimum error severity to display.
mssql.min_error_severity = 10
; Minimum message severity to display.
mssql.min_message_severity = 10
; Compatability mode with old versions of PHP 3.0.
mssql.compatability_mode = Off
; Connect timeout
;mssql.connect_timeout = 5
; Query timeout
;mssql.timeout = 60
; Valid range 0 - 2147483647. Default = 4096.
;mssql.textlimit = 4096
; Valid range 0 - 2147483647. Default = 4096.
;mssql.textsize = 4096
; Limits the number of records in each batch. 0 = all records in one batch.
;mssql.batchsize = 0
; Specify how datetime and datetim4 columns are returned
; On => Returns data converted to SQL server settings
; Off => Returns values as YYYY-MM-DD hh:mm:ss
;mssql.datetimeconvert = On
; Use NT authentication when connecting to the server
Aczkolwiek to zjawisko nie występuje dla wszystkich tabel.
Może ktoś miał podobny problem.