• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Wyświetlenie obliczonej sumy wartości kolumny | query | twig | symfony 3

Object Storage Arubacloud
0 głosów
607 wizyt
pytanie zadane 28 grudnia 2016 w PHP przez wanderer Gaduła (3,710 p.)
zamknięte 29 grudnia 2016 przez wanderer
/**
     * @Route("/test/")
     */
    public function sumAction(){
        $em = $this->getDoctrine()->getManager();
        $query = $em->createQuery(

       
            'SELECT SUM(p.labHour) FROM AppBundle:Allocation p WHERE p.idPeople = 2'
        );
        $sum = $query->getResult();
       

        return $this->redirectToRoute('allocation_index', array(
            'sum' => $sum,
        ));
        //jak to wyswietlic na ekranie????
    }

Cześć, powyżej wkleilem kod który sumuje mi wartosci z kolumny w bazie danych i rachunek jest wykonany dobrze tylko, że wynik wyświetla mi w takiej postaci w pasku adresu ?suma%5B0%5D%5B1%5D=420 jak tę sumę wyświetlić na stronie w twigu ?

komentarz zamknięcia: najlepsza
komentarz 28 grudnia 2016 przez Sinoviesta Nowicjusz (230 p.)
Dodaj {{sum}} w szablonie strony w body

1 odpowiedź

+1 głos
odpowiedź 28 grudnia 2016 przez grollajt Bywalec (2,860 p.)
wybrane 29 grudnia 2016 przez wanderer
 
Najlepsza

Przesylasz dane do routa a nie do twiga zamiast

 return $this->redirectToRoute('allocation_index', array(
            'sum' => $sum,
        ));

zrob cos takiego:
 

 return $this->render('CosTamBundle:Default:index.html.twig', array(
       'sum' => $sum 
        ));

 

komentarz 28 grudnia 2016 przez wanderer Gaduła (3,710 p.)
działa :) dzieki
1
komentarz 28 grudnia 2016 przez grollajt Bywalec (2,860 p.)

Mozesz tez odrazu dac 
 

return $this->render('default/test.html.twig', array(
            'suma' => $suma[0],
        ));

i teraz powinno dzialac:
 

{% for sum in suma %}
 
    {{ sum }}
 
{% endfor %}

 

komentarz 28 grudnia 2016 przez wanderer Gaduła (3,710 p.)

to oczywiście działa, mam z kolei  inne pytanie:

dodałem do mojej akcji  poza zapytaniem sql jeszcze  ->findAll() , zeby móc w rezultacie skontruowac tabele która w jendej kolumnie ma wyswietlane nazwy brane z ->findAll(), a w drugiej sumy z mojego select sum...

problem polega na tym, że w moim zapytaniu sql jest na sztywno podane np. where id=2,  a zalezy mi, żeby automatycznie w kolumnie SUMA były sumy przyporzadkowane odpowiednim przedmiotom o danym id, bo w tym momencie cała moja tabela wygląda tak, że nazwy przedmiotow co prawda sie zmieniaja, ale z racji ze where id jest na sztywno to ciągle mam ten sam wynik

tabela
Nazwa SUMA
Przedmiot1 500
Przedmiot2 1000


jak zmodyfikowac moją akcje , selecta i byc moze return ???

porzuce pastebina  z tym co udało mi się zrobić :

http://pastebin.com/7jdz2GVS




 

komentarz 28 grudnia 2016 przez grollajt Bywalec (2,860 p.)
Mosialbym wiedziec jak masz zrobiona baze by odpowiedziec poprawnie... ale jesli jest jakos tak ze w tabeli masz [idPrzedmiotu,nazwaPrzedmiotu,godzinyPrzedmiotu,idCzlonka] to zamiast  ->findAll() zrob  ->findByidUsera(2) wtedy powinno wyciagnac ci wszystkie rekordy gdzie jest user 2 a sume mozesz zrobic w PHP
komentarz 28 grudnia 2016 przez wanderer Gaduła (3,710 p.)
ok ok..ale ale jak to zrobic tak jakby "dynamicznie" nie na sztywno,bo na razie podaje w select  2 , a chce zeby dalo sie obsluzyc wszystkie id od 1 do n i to samo ->findByIdUser , jutro postaram sie bardziej wyjasnic juz z sama baza danych

Podobne pytania

0 głosów
0 odpowiedzi 120 wizyt
pytanie zadane 11 marca 2017 w PHP przez niezalogowany
0 głosów
0 odpowiedzi 153 wizyt
0 głosów
1 odpowiedź 788 wizyt
pytanie zadane 22 grudnia 2019 w PHP przez niezalogowany

92,565 zapytań

141,418 odpowiedzi

319,604 komentarzy

61,951 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...