Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Kohana] orm, select
Forum PHP.pl > Forum > PHP > Frameworki
nmts
1. Jak poniższe z KO2 wykonać w KO3?
  1. $orders->select(array("orders.*", "( 6371 * acos( cos( radians(".$lat.") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(".$lng.") ) + sin( radians(".$lat.") ) * sin( radians( lat ) ) ) ) AS distance"));
  2. $orders->having('distance <', $this->segments['length']);


Cytat
Database_Exception [ 1064 ]: Something is wrong in your syntax obok '.`000000) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(0`.`000000) ' w linii 1 [ SELECT `cities`.* AS `( 6371 * acos( cos( radians(0`.`000000) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(0`.`000000) ) + sin( radians(0`.`000000) ) * sin( radians( lat ) ) ) ) AS distance`, `cities`.* FROM `cities` ORDER BY `distance` ASC LIMIT 3 ]



2. Oraz czy jedynym rozwiązaniem jest zaśmiecenie pliku kolejnym routingiem aby nie było przecinka w url przy paginacji gdy nie ma miasta? (gdyby zamiast , było / to by problemu nie było [wycina wielokrotne / ?], ale musi być przecinek)
  1. Route::set('category', '<category>(,<city>)(/page/<page>)', array('category' => $cats, 'page' => '\d+'))
  2. ->defaults(array(
  3. 'controller' => 'category',
  4. 'action' => 'index',
  5. ));


@UPDATE

Do drugiego wymyśliłem coś takiego:
  1. Route::set('category', '<category>(<sep><city>)(/page/<page>)', array('category' => $cats, 'sep' => ',', 'page' => '\d+'))
  2. ->defaults(array(
  3. 'controller' => 'category',
  4. 'action' => 'index',
  5. ));


Ale tu z kolei zaśmieciłem sobie akcje śmieciowym argumentem. ^^
lukaskolista
Tu jest wszystko, a dokladnie tu. Co do drugiego pytania moj routing wyglada tak:

  1. Route::set('message', 'message/messages/<type>(/<message_id>)', array('type' => 'received|sended'))
  2. ->defaults(array(
  3. 'controller' => 'message',
  4. 'action' => 'messages',
  5. ));
i nie kombinuj za bardzo, bo to jest bardzo prosta sprawa. U mnie akurat nie jest to dla strony, tylko dla typu wiadomosci i jej id
nmts
Nie traktuj ludzi jak debili. Select nie działa, bo pakuje wszystko w ``. Widocznie w dwójce było inaczej ale nie chce mi się sprawdzać. Chyba, że chciałeś coś innego mi zaproponować.

phpion przyzywam Cię. ^^

Drugi problem też za bardzo nie zrozumiałeś, ale z nim nic się nie zrobie - ukośniki są łatwiejsze od przecinków - od tak.
phpion
Cytat(nmts @ 13.12.2010, 09:20:24 ) *
phpion przyzywam Cię. ^^

Hehe, stosujesz jakiś przekaz myślowy czy co? Sęk w tym, że w tym przypadku nijak nie pomogę - nie korzystam z KO3. Spróbuj napisać na forum polskiego supportu Kohany.
lukaskolista
Cytat
Nie traktuj ludzi jak debili. Select nie działa, bo pakuje wszystko w ``. Widocznie w dwójce było inaczej ale nie chce mi się sprawdzać. Chyba, że chciałeś coś innego mi zaproponować.
Chcialem Ci zaproponowac popatrzenie do dokumentacji, tam wszystko jest napisane. Co do drugiego problemu w Twoim kodzie byl przecinek, zrozumialem, ze chcesz okosnik, to podalem Ci przyklad jak mozna to zrobic. A jak to nazwales "zasmiecenie" bootstrapa jest jedynym rozwiazaniem, ew. mozesz utworzyc sobie oddzielny plik z regulkami i dolaczac go do bootstrapa.

@edit:
Do tego podpowiem (co jest napisane w dokumentacji, tylko trzeba przeczytac), ze aby uzyc jakiejkolwiek funkcji w zapytaniu sql trzeba dany fragment zapytania przepuscic przez metoda expr(). Wszystko jest na stronie, do ktorej link podalem. Tu przyklad
  1. public FUNCTION get() {
  2. RETURN DB::SELECT(array('count', DB::expr('COUNT(id)')))
  3. ->from('users')
  4. ->execute()
  5. ->get('count');
  6. }

Powyzsza metoda zwroci ilosc uzytkownikow.

I nie traktuje Cie jak idiote, chcialem Ci pokazac zrodlo wiedzy o kohana 3, ale przeciez nie musisz z niego korzystac i mozesz meczyc sie z tym sam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.