Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][SQL][PHP]Załadowanie wartości do tablicy wraz z sumowaniem
HaPe
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 30.04.2013

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


Witam,
mam taką tabelę w MySQL
  1. liczba klucz
  2. 55 1
  3. 47 1
  4. 66 2
  5. 214 2
  6. 85 3
  7. 2 4
  8. 6 4
  9. 9 4
  10. 5 5
  11. 4 6
  12. 25 7
  13. 85 7
  14. 556 7
  15. 4 8
  16. 5 9

W jaki sposób załadować te dane do tablicy, aby móc się do nich odwoływać w sposób
  1. $tablica['1']
?
Przy czym jeśli dla jednego klucza istnieje kilka liczb, to w tablicy powinny być zsumowane.
Czyli przy odwoływaniu się poprzez
  1. $tablica['1']
powinna wyjść wartość 102, ponieważ 55+47=102.
Mogę liczyć na doradzenie jak się za to zabrać?

Ten post edytował HaPe 27.06.2013, 19:55:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
c1chy
post
Post #2





Grupa: Zarejestrowani
Postów: 72
Pomógł: 16
Dołączył: 21.06.2013

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


  1. <?php
  2.  
  3. $tablica=array();
  4. foreach ($wyniki as $wiersz){
  5.  
  6. $tablica[$wiersz['klucz']]+=$wiersz['liczba'];
  7.  
  8. }


$wyniki to lista wyników pobrana z bazy.


--------------------
devstrefa.wordpress.com
Go to the top of the page
+Quote Post
HaPe
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 30.04.2013

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


Mam mały problem, kod niezbyt działa. Na razie próbuję dojść co jest nie tak.
Zapytanie zapisywane do zmiennej wyniki zapisać przez mysql_fetch_assoc czy mysql_fetch_array?
  1. Warning: Illegal string offset 'klucz'
  2. Warning: Illegal string offset 'liczba'


Ten post edytował HaPe 27.06.2013, 21:15:42
Go to the top of the page
+Quote Post
ptq
post
Post #4





Grupa: Zarejestrowani
Postów: 44
Pomógł: 2
Dołączył: 25.08.2009

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


A może zrób sume podczas wyciągania danych z bazy?

  1. SELECT SUM(`liczba`), `klucz` FROM `tablica` GROUP BY `klucz`


potem aby mieć id jako klucz tablicy:

  1. while ( $result = mysql_fetch_assoc($query) ) {
  2. $output[ $result[ 'klucz' ] ] = $result[ 'liczba' ];
  3. }


Mam nadzieję, że zadziała smile.gif


--------------------
Jeżeli czegoś się nie da zrobić,
daj to do zrobienia komuś kto o tym nie wie,
na pewno to zrobi...
Go to the top of the page
+Quote Post
c1chy
post
Post #5





Grupa: Zarejestrowani
Postów: 72
Pomógł: 16
Dołączył: 21.06.2013

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


Właściwie to powinieneś powoli zapominać o mysql_ a zobaczyć jak używa się mysqli lub PDO. Jednak jeżeli chcesz używać mysql_ to całość może wyglądać mniej wiecej tak:

  1.  
  2. $sql='zapytanie sql';
  3.  
  4. $result=mysql_query($sql);
  5.  
  6. if (!$result){
  7. }
  8.  
  9. $tablica=array();
  10. while($wiersz=mysql_fetch_assoc($result){
  11. $tablica[$wiersz['klucz']]+=$wiersz['liczba'];
  12. }
  13.  


--------------------
devstrefa.wordpress.com
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 09:33