Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework] Zend_Db_Table - order() nie znajduje kolumny
sweter
post
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 11
Dołączył: 1.01.2009
Skąd: Wrocław

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


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ć?
Go to the top of the page
+Quote Post
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
sweter
post
Post #3





Grupa: Zarejestrowani
Postów: 623
Pomógł: 11
Dołączył: 1.01.2009
Skąd: Wrocław

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


Chcę zrobić takie zapytanie jak jest przykładowo tutaj: http://nospor.pl/mysql-faq.html#faq-5 (trzeci listing).

Ten post edytował sweter 26.04.2012, 08:31:30
Go to the top of the page
+Quote Post
Pilsener
post
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


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.
Go to the top of the page
+Quote Post
MaxRipper
post
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 2
Dołączył: 19.08.2003
Skąd: Białystok

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


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

Ten post edytował MaxRipper 27.04.2012, 07:14:05
Go to the top of the page
+Quote Post
hind
post
Post #6





Grupa: Zarejestrowani
Postów: 142
Pomógł: 24
Dołączył: 30.03.2009
Skąd: Rokitno Szlacheckie

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


mysql ma takie coś jak order by field(<kolumna>,war1[,war2])

sprawdź
  1. $select->order(new Zend_Db_Expr('field(page.id,1,2)'));
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 15:51