Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [CakePHP] Problem z pobraniem rekordu
Bajki
post
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 28.04.2005
Skąd: Kraków

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


Witam
Mam mały problem z pobraniem rekordu z bazy przy użyciu frameworka CakePHP.

pliki :

shows_controller.php
  1. <?php
  2. class ShowsController extends AppController
  3. {
  4.    var $name = 'Shows';
  5.    var $helpers = array('Modifier', 'Component');
  6.    var $paginate = array('limit' => 5, 'page' => 1, 'order'=>array('date' => 'desc'));
  7.    
  8.    function index()
  9.    {
  10.            (...)
  11.    }
  12.    
  13.    function view($date = null)
  14.    {
  15.        $this->Show->date = $date;
  16.        $this->set('shows', $this->Show->read());
  17.    }
  18.  
  19.  
  20. }
  21. ?>


kiedy w przeglądarce wpisuje adres :
Kod
http://localhost/blog/shows/view/1227740400


zapytanie nic nie zwraca. Ale nie dlatego, że rekord nie istnieje(bo istnieje) a dlatego, że tworzone jest błędne zapytanie :

  1. SELECT `Show`.`id`, `Show`.`user_id`, `Show`.`title`, `Show`.`city`, `Show`.`date`, `Show`.`bands`, `Show`.`authors`, `Show`.`content`, `Show`.`comments` FROM `shows` AS `Show` [b]WHERE `Show`.`id` = 1227740400[/b] LIMIT 1


Nie wiem dlaczego, ale w zapytaniu sprawdzana jest tabela ID a nie DATE... ma ktoś może jakiś pomysł jak to rozwiązać ? winksmiley.jpg był bym bardzo wdzięczny

Pozdrawiam i z góry dziękuje !
Go to the top of the page
+Quote Post
woj_tas
post
Post #2





Grupa: Zarejestrowani
Postów: 230
Pomógł: 36
Dołączył: 31.03.2006
Skąd: Zielona Góra

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


Metoda read pobiera zawsze rekord odwolujac sie do priwary key (najczesciej id)
  1. <?php
  2. function view($id = null)
  3.   {
  4.       $this->Show->id = $id;
  5.       $this->set('shows', $this->Show->read());
  6.   }
  7. ?>


W twoim przypadku powinno wyglądać to tak:

  1. <?php
  2. function view($date = null)
  3.   {
  4.       $this->set('shows', $this->Show->findByDate($date));
  5.   }
  6. ?>


--------------------
Go to the top of the page
+Quote Post
Bajki
post
Post #3





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 28.04.2005
Skąd: Kraków

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


Super, teraz działa ! winksmiley.jpg dzięki za pomoc winksmiley.jpg
Go to the top of the page
+Quote Post
pawelvod
post
Post #4





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 21.09.2006

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


Zmień 'date'. To jest słowo zastzreżone używane między innymi w php, html, sql i większości języków. Nazywanie pola w tabeli w ten sposób to bardzo nieszczęśliwy pomysł. Zmień nazwę kolumny na date2, czy ddate i wszystko będzie ok.
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: 19.08.2025 - 10:13