Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [symfony][doctrine]Jak pobrać maksymalną wartość
yaotzin
post
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 12.02.2007
Skąd: Zielona Góra

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


Witam

Jestem początkujący w kwestii frameworków PHP:

Kwestia jest taka, iż posiadam tabelę, gdzie mam dwie wartości id1 i id2, pierwszy określa relację z inną tabelą natomiast drugi zapewnia unikalny klucz główny dla aplikacji.

No i jest tak, że id1 pobieram i jestem w stanie dodać tam gdzie trzeba, natomiast id2 muszę ręcznie inkrementować, i tutaj jest pytanie jak pobrać maksimum z bazy danych dla tej wartości?

Próbuję robić tak:
  1. Doctrine::getTable('tabela')->createQuery('select max(s.id2) from tabela s where s.id1 = :id1');


Poza faktem, że powyższy zapis wydaje mi się całkowicie bez sensu to nie wiem gdzie popełniam błąd. Pracowałem z frameworkami JAVA'owymi dłuuuugo, więc zarzuciłem PHP, niedawno postanowiłem przywrócić swoją wiedzę, ale coś to kiepsko idzie (IMG:style_emoticons/default/winksmiley.jpg)

Po execute dostaję jakiś dziwny obiekt, który nic mi nie mówi, więc nadal nie wiem jak dostać się do wartości id2 którą potrzebuję

Ten post edytował yaotzin 3.01.2011, 00:12:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


http://www.doctrine-project.org/projects/o...s:single-scalar
Go to the top of the page
+Quote Post
yaotzin
post
Post #3





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 12.02.2007
Skąd: Zielona Góra

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


  1. $answer = Doctrine::getTable('pwnOrder')->createQuery('s')->select('max(s.id2)')->where('s.id1 = ?', $id1);
  2. $result = $answer->fetchOne();
  3. print_r($result['max']);


Rozwiązałem to tak jak w powyższym, z tym że teraz gdy poustawiałem te wartości w polach form:

  1. $this->form->setDefault('id1', $id1);
  2. $this->form->setDefault('id2', $result['max']+1)


to dostaję info z symfony

  1. * User: Invalid.
  2. * Order: Invalid.


Nie wiem dlaczego? CRUD generowałem w symfony, nie pisałem ręcznie.

Na marginesie, bo nie widziałem, że odpowiedziałeś (@Crozin) dzięki.

Ten post edytował yaotzin 3.01.2011, 00:48:50
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 - 23:58