Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Kohana] Dziwne zwracanie wartości z bazy mssql, Kohana 2.3.4
k_@_m_i_l
post
Post #1





Grupa: Zarejestrowani
Postów: 349
Pomógł: 72
Dołączył: 22.01.2008
Skąd: Wadowice/Oświęcim

Ostrzeżenie: (0%)
-----


Mam problem z bazą mssql.
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 :
  1. <?php
  2. defined('SYSPATH') or die('Dostęp zabrioniony');
  3. class Product_Controller extends Controller
  4. {
  5. private $template;
  6. private $model;
  7. private $limit = 12;
  8.  
  9. public function __construct()
  10. {
  11. parent::__construct();
  12. $this->template = new View('layout/layout');
  13. $this->model = new Product_Model;
  14. }
  15.  
  16. public function list_product()
  17. {
  18. $this->template->title = 'Lista produktów';
  19. $category = $this->model->list_category();
  20. $this->template->content = new View('product/list');
  21. echo Kohana::debug($category);
  22. $this->template->content->category = $category;
  23. $this->template->render(true);
  24. }
  25. }
  26. ?>

Model :
  1. <?php
  2. defined('SYSPATH') or die('Dostęp zabrioniony');
  3. class Product_Model extends Model
  4. {
  5. public function list_category()
  6. {
  7. $result = $this->db
  8. ->select('*')
  9. ->from('kategoria_artykulu')
  10. ->get();
  11. return $result;
  12. }
  13. ?>
  14.  

Widok tak :
  1. <?php
  2. defined('SYSPATH') or die('Dostęp zabrioniony');
  3. foreach($category->result_array(false) as $key=>$row)
  4. {
  5. echo Kohana::debug($row);
  6. }
  7. ?>

Wywołanie metody list_product() z kontrolera Product, daje taki rezultat :
  1. (array)
  2.  
  3.  


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:
  1. public function list_category()
  2. {
  3. $result = $this->db
  4. ->select('ID_KATEGORII','NAZWA')
  5. ->from('kategoria_artykulu')
  6. ->get();
  7. return $result;
  8. }


to dostaję następujący wynik(powinien zwrócić 3rekordy)
  1.  
  2. (
  3. [ID_KATEGORII] => 2
  4. [NAZWA] => Kategoria
  5. )
  6.  
  7. (
  8. [ID_KATEGORII] => 4
  9. [NAZWA] => Motoryzacja
  10. )
  11.  


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

Aczkolwiek to zjawisko nie występuje dla wszystkich tabel.
Może ktoś miał podobny problem.


--------------------
"PHP to człowiek. MySQL to również człowiek."
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
arachnia
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.07.2006

Ostrzeżenie: (0%)
-----


pewnie znalazles juz rozwiązanie, jak dla mnnie w kontrolerze brakuje zapytania o rezultat np. result_array()


czyli:
  1. public function list_product()
  2.  
  3. {
  4.  
  5. $this->template->title = 'Lista produktów';
  6.  
  7. $category = $this->model->list_category()->result_array();
  8.  
  9. }

http://docs.kohanaphp.com/libraries/database/result
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 08:15