Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Zend_Db_Table - order() nie znajduje kolumny
Forum PHP.pl > Forum > PHP > Frameworki
sweter
Chciałem zrobić zapytanie SQL, które ma taką formę:
  1. SELECT * FROM tabela
  2. ORDER BY page.id = 1, page.id = 2

Tak więc kod w ZF wygląda następująco:
  1. $sql->order('page.id=1')

Jednak Zendzik mówi mi, że
Cytat
Message: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'page.id=1' in 'order clause'

Jednak jeżeli zmienię nieco parametr na taki
  1. $sql->order('page.id')

to wszytko działa, hula i tańczy.

Jak to naprawić?
Pilsener
Nie za bardzo rozumiem problem. Jeśli chcesz dodać kolejne order by:
  1. $sql->order(array('age DESC','hair_color'));


I te order wygląda bardziej jak where smile.gif
sweter
Chcę zrobić takie zapytanie jak jest przykładowo tutaj: http://nospor.pl/mysql-faq.html#faq-5 (trzeci listing).
Pilsener
Spróbuj jeszcze tak:
  1. $sql->order(new Zend_Db_Expr('pole=2 desc, pole=4 desc, pole=3 desc,pole=1 desc'));


Jak nie zadziała to nie mam więcej pomysłów.
MaxRipper
Cytat(sweter @ 25.04.2012, 21:07:12 ) *
Chciałem zrobić zapytanie SQL, które ma taką formę:
  1. SELECT * FROM tabela
  2. ORDER BY page.id = 1, page.id = 2


Radze Ci w pierwszej kolejnosci sprawdzic czy Twoja wersja MySQL obsluguje wogole tego typu sortowanie. Chociaz z tego co widze w manualu to chyba nie istnieje taka mozliwosc:
http://dev.mysql.com/doc/refman/5.6/en/ord...timization.html
hind
mysql ma takie coś jak order by field(<kolumna>,war1[,war2])

sprawdź
  1. $select->order(new Zend_Db_Expr('field(page.id,1,2)'));
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.