Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] propel problem z pobraniem pojedynczego pola z tabeli
harvesterix
post
Post #1





Grupa: Zarejestrowani
Postów: 74
Pomógł: 0
Dołączył: 17.09.2009

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


Witam
Chciałbym się dowiedzieć w jaki sposób używając propela mogę sobie pobrać z bazy dowolne pojedyncze pole?

Przykład
Mam tabelę user i chciałbym z niej wyciągnąć wszystkie nazwiska uzytkowników bez powtórzeń czyli proste zapytanie mysql:
  1. SELECT DISTINCT surname FROM user;

Oczywiście wiem że mogę sobie pobrać wszystkich użytkowników (całe obiekty) i później w pętli przetworzyć ich nazwiska ale nie o to mi chodzi, po co pobierać wszystko i jeszcze przetważać pobrane dane pętlą skoro bazy danych załatwiają takie żeczy od ręki.
W dokumentacji propela znalazłem bardzo prosty sposób na zrobienie czegoś podobnego w taki sposób:
  1. $books = BookQuery::create()
  2. ->select('Title')
  3. ->find();


Tylko że gdy próbuję zrobić analogicznie w symfony wywala mi błąd że nie ma klasy UserQuery


OK udało mi się zrobić to w taki sposób:
  1. $c = new Criteria();
  2. $c->clearSelectColumns();
  3. $c->addSelectColumn(self::SURNAME);
  4. $c->setDistinct();
  5. $result = self::doSelectStmt($c);
  6. $tablica = array();
  7. foreach($result as $surname)
  8. {
  9. $tablica[] = $surname[0];
  10. }
  11.  
  12. //później wystarczy zrobić foreach($tablica as $row) echo $row


Mimo wszystko chciałbym poznać inne sposoby radzenia sobie z takimi problemami, także jeśli znacie inną metodę to piszcie.

Ten post edytował harvesterix 20.02.2012, 15:23:01
Go to the top of the page
+Quote Post
chemik1982
post
Post #2





Grupa: Zarejestrowani
Postów: 91
Pomógł: 13
Dołączył: 20.03.2007
Skąd: Bydgoszcz

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


Propel, Doctrine - OK, ale kiedy trzeba użyć użyć klasycznego zapytania to nie ma co kombinować.
http://www.symfony-project.org/gentle-intr...raw_sql_queries
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: 23.08.2025 - 22:22