Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Sumowanie wartości z kolumn, Każdy wiersz to wynik zapytania SELECT z innej tabel MySQL
Therminus
post
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 24.05.2015

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


Mam w php zrobiona tabelkę, w której wiersze zawierają dane z tabel MySQL. Niektóre komórki to nie tylko proste pobranie danych z tabeli MySQL, ale efekt wykonywania działań na danych tabeli (dodawanie, dzielenie, mnożenie). Każdy wiersz to inna tabela. Wierszy (a więc i tabel MySQL) jest około 100.
Zachodzi potrzeba zsumowania wartości liczbowych z kilkunastu kolumn.
Jak to zrobić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Lord
post
Post #2





Grupa: Zarejestrowani
Postów: 239
Pomógł: 32
Dołączył: 10.03.2004

Ostrzeżenie: (10%)
X----


Cytat(Therminus @ 1.06.2016, 16:47:02 ) *
Mam w php zrobiona tabelkę, w której wiersze zawierają dane z tabel MySQL. Niektóre komórki to nie tylko proste pobranie danych z tabeli MySQL, ale efekt wykonywania działań na danych tabeli (dodawanie, dzielenie, mnożenie). Każdy wiersz to inna tabela. Wierszy (a więc i tabel MySQL) jest około 100.
Zachodzi potrzeba zsumowania wartości liczbowych z kilkunastu kolumn.
Jak to zrobić?

A możesz podać jak wygląda struktura tej tablicy? (print_r())

http://php.net/manual/en/function.array-sum.php
http://php.net/manual/en/function.array-map.php
http://stackoverflow.com/questions/1283872...array-array-sum
http://php.net/manual/en/function.array-column.php

to ci powinno pomóc. Ewentualnie jakiś foreach, ale to zależy jak te dane w tablicy rozmieszczone
Go to the top of the page
+Quote Post
Therminus
post
Post #3





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 24.05.2015

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


Cytat(Lord @ 1.06.2016, 21:38:27 ) *
A możesz podać jak wygląda struktura tej tablicy? (print_r())

Dzięki za zainteresowanie.
z linkami, które podałeś zapoznałem się wcześniej. Niestety, przykłady tam zawarte nie pasują do mojego problemu. Obawiam się, że popełniłem na samym początku błędy projektowe i teraz nie da sie prosto mojego problemu rozwiązać. Być może niepotrzebnie stworzyłem ponad setkę tabel. A może brak jakiejś zbiorczej tabeli. Może jakoś wspólnie coś ustalimy. Podaję niżej kawałek kodu wyświetlającego dwie pozycje.
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <?xml version="1.0" encoding="utf-8" ?>
  3. <html>
  4. <head>
  5. <link rel="Stylesheet" type="text/css" href="table.css" />
  6. <script type="text/javascript" src="table.js"></script>
  7. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
  8. <title>Nieruchomości</title>
  9. </head>
  10. <body>
  11. <script LANGUAGE="JavaScript">
  12. <!--
  13. document.write("<INPUT TYPE=\"BUTTON\" VALUE=\"Strona Główna\" onClick=\"location='index.php'\">");
  14. // -->
  15. </SCRIPT><p>
  16.  
  17. <p>
  18. <table border="1" width="100%" cellspacing="0" cellpadding="0" bordercolorlight="#000000">
  19. <tr>
  20. <td width="100%" colspan="20" bgcolor="#C0C0C0">
  21. <p align="center"><b><font size="2">Nieruchomości </font></b></td>
  22. </tr>
  23. <tr>
  24. <td width="7" align="center" bgcolor="#E0E0E0"><font size="2">LP</font></td>
  25. <td width="12" align="center" bgcolor="#E0E0E0"><font size="2">Ulica</font></td>
  26. <td width="8" align="center" bgcolor="#E0E0E0"><font size="2">Nr budynku</font></td>
  27. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">Nr działki</font></td>
  28. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">Nr księgi wiecz.</font></td>
  29. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">Powierz. działki</font></td>
  30. <td width="11" align="center" bgcolor="#E0E0E0"><font size="2">Obręb</font></td>
  31. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">Uwagi</font></td>
  32. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">PU mieszk.</font></td>
  33. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">PU cz. przynal.</font></td>
  34. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">PU lok. użyt.</font></td>
  35. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">PU LU + M</font></td>
  36. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">PU mieszk. z pr. wł.</font></td>
  37. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">PU lu. z pr. wł.</font></td>
  38. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">PU przyn. z pr. wł.</font></td>
  39. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">PU mieszk. spółdz.</font></td>
  40. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">Udział OW w nieruch.</font></td>
  41. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">PGS mieszk.</font></td>
  42. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">PGS użytkowe</font></td>
  43. <td width="10" align="center" bgcolor="#E0E0E0"><font size="2">PGS garaże</font></td>
  44. </tr>
  45. <?php
  46. $sql = mysql_connect('localhost', 'admin', 'smg');
  47. mysql_select_db('nieruchomosci');
  48. $char = "SET CHARSET UTF8";
  49. mysql_query($char);
  50.  
  51. // broniewskiego_2-10 (br_210)
  52. $zapytanie1 = "SELECT * FROM `dzialki` WHERE `ID` LIKE '1'";
  53. $wykonaj1 = mysql_query ($zapytanie1);
  54. while($wiersz=mysql_fetch_array ($wykonaj1))
  55.  
  56. {
  57. $suma_br_210_1 = "SELECT SUM(Pow_Uzyt) as sum_br_210_1 FROM `broniewskiego_2-10` WHERE `Kategoria` LIKE 'M'";
  58. $suma_br_210_2 = "SELECT SUM(Pow_przynal_zalicz) as sum_br_210_2 FROM `broniewskiego_2-10`";
  59. $suma_br_210_3 = "SELECT SUM(Pow_Uzyt) as sum_br_210_3 FROM `broniewskiego_2-10` WHERE `Kategoria` LIKE 'LU%'";
  60. $suma_br_210_4 = "SELECT SUM(Pow_Uzyt) as sum_br_210_4 FROM `broniewskiego_2-10`";
  61. $suma_br_210_5 = "SELECT SUM(Pow_razem) as sum_br_210_5 FROM `broniewskiego_2-10`";
  62. $suma_br_210_6 = "SELECT SUM(Pow_Uzyt_IF) as sum_br_210_6 FROM `broniewskiego_2-10` WHERE `Kategoria` LIKE 'M'";
  63. $suma_br_210_7 = "SELECT SUM(Pow_Uzyt_IF) as sum_br_210_7 FROM `broniewskiego_2-10` WHERE `Kategoria` LIKE 'LU%'";
  64. $suma_br_210_8 = "SELECT SUM(Pow_Przynal_IF) as sum_br_210_8 FROM `broniewskiego_2-10`";
  65. $rozn_br_210_9 = "SELECT Coalesce(SUM(case when `Kategoria` LIKE 'M' then `Pow_Uzyt` end),0) - Coalesce(SUM(case when `Kategoria` LIKE 'M' then `Pow_Uzyt_IF` end),0) as roz_br_210_9 FROM `broniewskiego_2-10`";
  66. $ilor_br_210_10 = "SELECT (Coalesce(SUM(case when `Kategoria` LIKE 'M' then `Pow_Uzyt_IF` end),0) + Coalesce(SUM(case when `Kategoria` LIKE 'LU%' then `Pow_Uzyt_IF` end),0) + Coalesce(SUM(Pow_Przynal_IF),0)) / (Coalesce(SUM(case when `Kategoria` LIKE 'M' then `Pow_Uzyt` end),0) + Coalesce(SUM(Pow_przynal_zalicz),0) + Coalesce(SUM(case when `Kategoria` LIKE 'LU%' then `Pow_Uzyt` end),0)) as ilo_br_210_10 FROM `broniewskiego_2-10`";
  67.  
  68. $result_br_210_1 = @mysql_query($suma_br_210_1);
  69. $result_br_210_2 = @mysql_query($suma_br_210_2);
  70. $result_br_210_3 = @mysql_query($suma_br_210_3);
  71. $result_br_210_4 = @mysql_query($suma_br_210_4);
  72. $result_br_210_5 = @mysql_query($suma_br_210_5);
  73. $result_br_210_6 = @mysql_query($suma_br_210_6);
  74. $result_br_210_7 = @mysql_query($suma_br_210_7);
  75. $result_br_210_8 = @mysql_query($suma_br_210_8);
  76. $result_br_210_9 = @mysql_query($rozn_br_210_9);
  77. $result_br_210_10 = @mysql_query($ilor_br_210_10);
  78. $sum_1_br_210 = mysql_fetch_assoc($result_br_210_1);
  79. $sum_2_br_210 = mysql_fetch_assoc($result_br_210_2);
  80. $sum_3_br_210 = mysql_fetch_assoc($result_br_210_3);
  81. $sum_4_br_210 = mysql_fetch_assoc($result_br_210_4);
  82. $sum_5_br_210 = mysql_fetch_assoc($result_br_210_5);
  83. $sum_6_br_210 = mysql_fetch_assoc($result_br_210_6);
  84. $sum_7_br_210 = mysql_fetch_assoc($result_br_210_7);
  85. $sum_8_br_210 = mysql_fetch_assoc($result_br_210_8);
  86. $roz_9_br_210 = mysql_fetch_assoc($result_br_210_9);
  87. $ilo_10_br_210 = mysql_fetch_assoc($result_br_210_10);
  88.  
  89. $roz_11_br_210 = (1 - $ilo_10_br_210['ilo_br_210_10']);
  90. $pdz_12_br_210 = $wiersz['Pow_dzial'];
  91. $ilc_13_br_210 = ($pdz_12_br_210 * $roz_11_br_210);
  92.  
  93. echo '<tr>
  94. <td align="center">'.$wiersz['ID'].'</td>
  95. <td align="center">'.$wiersz['Ulica'].'</td>
  96. <td align="center">'.$wiersz['Klatka'].'</td>
  97. <td align="center">'.$wiersz['Nr_dzialki'].'</td>
  98. <td align="center">'.$wiersz['Nr_KW'].'</td>
  99. <td align="right">'.$wiersz['Pow_dzial'].'</td>
  100. <td align="center">'.$wiersz['Obreb'].'</td>
  101. <td align="center">'.$wiersz['Uwagi'].'</td>
  102. <td align="right">'.$sum_1_br_210['sum_br_210_1'].'</td>
  103. <td align="right">'.$sum_2_br_210['sum_br_210_2'].'</td>
  104. <td align="right">'.$sum_3_br_210['sum_br_210_3'].'</td>
  105. <td align="right">'.$sum_4_br_210['sum_br_210_4'].'</td>
  106. <td align="right">'.$sum_6_br_210['sum_br_210_6'].'</td>
  107. <td align="right">'.$sum_7_br_210['sum_br_210_7'].'</td>
  108. <td align="right">'.$sum_8_br_210['sum_br_210_8'].'</td>
  109. <td align="right">'.$roz_9_br_210['roz_br_210_9'].'</td>
  110. <td align="right">'.$ilo_10_br_210['ilo_br_210_10'].'</td>
  111. <td align="right">'.round ($ilc_13_br_210, 4).'</td>
  112. <td align="right"></td>
  113. <td align="right"></td>
  114. </tr>';
  115. }
  116.  
  117. mysql_close($sql);
  118.  
  119. ?>
  120.  
  121. </table>
  122. </body>
  123. </html>
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: 15.10.2025 - 03:08