Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sortowanie tablicy
adiq
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 15.08.2009

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


Witam,
mam dane wyciągane do tablicy podanej poniżej.
  1. (
  2. [0] => Array
  3. (
  4. [id] => 1
  5. [typ] => recenzja
  6. [catid] => 1
  7. [userid] => 1
  8. [addtime] => 124314132
  9. [views] => 4
  10. [title] => tytul
  11. [shortcontent] => krotki kontent
  12. [content] => cala tresc
  13. )
  14.  
  15. [1] => Array
  16. (
  17. [id] => 3
  18. [typ] => recenzja
  19. [catid] => 1
  20. [userid] => 1
  21. [addtime] => 41231231
  22. [views] => 5
  23. [title] => title
  24. [shortcontent] => abc..
  25. [content] => asdfghjkl
  26. )
  27. )



Musze posortować tablice według wartości 'addtime' od największej.

Całość (już posortowaną) muszę prze konwertować do obiektu, jak zrobić to w prosty sposób.
Wartości takie same tzn. $a[0][catid] ma się dać wywołać przez $obj[0]->catid .

Pozdrawiam i prosze o odpowiedź (IMG:style_emoticons/default/smile.gif)

Ten post edytował adiq 17.06.2010, 22:55:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adiq
post
Post #2





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 15.08.2009

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


Error nie z PHP, a z kohany.
Tabela news jak i recenzje są identyczne.
  1. Column 'addtime' in order clause is ambiguous.
Go to the top of the page
+Quote Post
darko
post
Post #3





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Cytat(adiq @ 18.06.2010, 11:59:08 ) *
Error nie z PHP, a z kohany.
Tabela news jak i recenzje są identyczne.
  1. Column 'addtime' in order clause is ambiguous.

Wynika z tego, że kolumna addtime występuje w obydwu tabelach i baza "nie wie" o którą tabelę chodzi. Rozwiązanie: użyj aliasów:
- dla addtime z tabeli news:
  1. SELECT * FROM news n, recenzje r ORDER BY n.addtime DESC LIMIT 10

- dla addtime z tabeli recenzje:
  1. SELECT * FROM news n, recenzje r ORDER BY r.addtime DESC LIMIT 10

Powinno zadziałać.
// edit
a gdzie tu masz warunek łączenia tabel lub zależność opartą o klucze obce? Mam na myśli to:

  1. SELECT * FROM news n, recenzje r WHERE n.FK_TABELI_RECENZJE=r.PK_TABELI ORDER BY r.addtime DESC LIMIT 10

*) gdzie FK_TABELI to klucz obcy, a PK_TABELI to klucz główny odpowiedniej tabeli.

Ten post edytował darko 18.06.2010, 11:15:36
Go to the top of the page
+Quote Post

Posty w temacie


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: 3.10.2025 - 04:11