Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Problem z wyswietlaniem sumy wartosci rekordow o roznym id
Forum PHP.pl > Forum > Przedszkole
dawids2411
Wiec na początek kod:

  1. //sumowanie wartosci rekordow o id_kategorie = 10
  2. $query = 'SELECT ROUND(SUM(cena_zakupu), 2) AS suma FROM zakup WHERE id_kategorie= 10';
  3. $result = mysql_query($query);
  4. $z = mysql_result($result, 0);
  5. echo "$z";
  6. // sumowanie wszystkich rekordow o id_kategorie = 10
  7. $query2='SELECT COUNT(*) AS id FROM zakup WHERE id_kategorie=10 ';
  8. $result2 = mysql_query($query2);
  9. $z2 = mysql_result($result2, 0);
  10.  
  11. $wynik = mysql_query("SELECT * FROM kategorie")
  12. or die('Błąd zapytania');
  13.  
  14.  
  15. /*
  16. wyświetlamy wyniki, sprawdzamy,
  17. czy zapytanie zwróciło wartość większą od 0
  18. */
  19. if(mysql_num_rows($wynik) > 0) {
  20.  
  21. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  22. echo "<table cellpadding=\"2\" border=1>";
  23. echo "<tr>";
  24. echo "<td bgcolor=#ff8000>"."ID"."</td>";
  25. echo "<td bgcolor=#ff8000>"."kategoria"."</td>";
  26. echo "<td bgcolor=#ff8000>"."wartosc"."</td>";
  27. echo "<td bgcolor=#ff8000>"."produktow"."</td>";
  28. echo "<td bgcolor=#ff8000>"."szt"."</td>";
  29. echo "<td bgcolor=#ff8000>"."Opcje"."</td>";
  30.  
  31.  
  32. while($r = mysql_fetch_assoc($wynik))
  33. {
  34.  
  35.  
  36. echo "<tr>";
  37.  
  38. echo "<td>".$r['ID']."</td>";
  39. echo "<td>".$r['kategoria']."</td>";
  40. echo "<td>".$z."</td>";
  41. echo "<td>".$z2['produktow']."</td>";
  42. echo "<td>
  43. <a href=\"us.php?a=del&amp;ID={$r['ID']}\">DEL</a>
  44. <a href=\"edit.php?a=edit&amp;ID={$r['ID']}\">EDYTUJ</a>
  45.  
  46.  
  47. </td>";
  48. echo "</tr>";
  49. }
  50. echo "</table>";
  51.  
  52. }
  53.  
  54.  
  55.  
  56. ?>


A teraz z czym nie potrafię sobie poradzic mianowicie.

W linijce :
  1. $query = 'SELECT ROUND(SUM(cena_zakupu), 2) AS suma FROM zakup WHERE id_kategorie= 10';


sumuje mi pionowo rekordy a dokladniej cene towaru które ma id_kategorie=10
i wstawiam zmienna z wynikiem zapytania do generowanej tabeli
i jak zrobic aby w tabeli obok kategori np o id 6 wyswietlala sie suma wszystkich produktów ktore należą do kategori 6 a nie 10
wiem ze zamiast tego 10 musi byc jakas zmienna ale nie wiem jak to mam zrobic


bo aktualnie to we wszystkich kategoriach o roznych nr mam jedynie sume produktów ktore maja id_kategori 10
identycznie jest z sumowaniem ilosci rekordow o danym id
pomozecie ?
sazian
nie wiem czy dobrze zrozumiałem ale chyba o to chodzi
  1. SELECT ROUND(SUM(cena_zakupu), 2) AS suma,id_kategorie FROM zakup GROUP BY id_kategorie
dawids2411
NIe to nie dziala
chodzi o to ze np:

Kategorie
id|nazwa
10|sprzet
11|okablowanie

produkty
id|nazwa|id_kategorie|cena|

1|router|10|200
2|switch|10|200
3|skretka|11|100
4|koncentryk|11|100
5|swiatlowod|11|100


I teraz jest generowana tabela
id|kategoria|wartosc|produktow|

1|sprzet|400|2
2|okablowanie|300|3

Tak powinno wygladac ale w tabeli wartosc sumuje mi tylko produkty o id 10 i ilosc produktow takze czyli wyglada to tak

1|sprzet|400|2
2|okablowanie|400|3

juz prosciej nie potrafie
sazian
pisane z palca i tym razem podałeś inne nazwy tabel wink.gif

  1. $query=mysql_query('SELECT ROUND(SUM(p.cena), 2) AS suma,COUNT(p.id) AS ile, k.nazwa, k.id_kategori
  2. FROM produkt p
  3. JOIN Kategorie k ON p.id_kategori = k.id_kategori
  4. GROUP BY k.id_kategori');
  5. echo 'id|kategoria|wartosc|produktow|';
  6. if(mysql_num_rows($query) > 0)
  7. {
  8. while($row=mysq_fetch_object($query))
  9. {
  10. echo $row->id.'|'.$row->nazwa .'|'.$row->suma.'|'.$row->ile.'<br />';
  11. }
  12.  
  13.  
  14. }
dawids2411
a to sorrki

wystąpil blad
:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /virtual/tabela.php on line 199

jest to ta linijka:

  1. if(mysql_num_rows($query) > 0)
sazian
tak jak pisałem całość był pisana z palca i mogą być błędy
tu dostajesz informację od php że to co przekazałeś do mysql_num_rows nie jest prawidłowym zasobem MySQL
czyli błąd jest w zapytaniu
wrzuć je do phpmyadmin i zobacz gdzie jest błąd
sazian
oczywiście sprawdziłeś czy nazwy tabel/kolumn są prawidłowe ? wiesz coś mi ostatnio szklana kula nawala i trudno mi wywróżyć co masz w bazie

czy ten błąd to przypadkiem nie było #1046 - No database selected ? czyli nie wybrano bazy a nie tabeli ? jeśli tak to kliknij na nazwę bazy w lewej części okna
dawids2411
przepraszam cie ale jestem nie ogarniety dzisiaj

blad wystapil taki:

  1. #1054 - Unknown column 'p.cena' in 'field list'



zapytanie do bazy :

  1. SELECT ROUND(SUM(p.cena), 2) AS suma,COUNT(p.id) AS ile, k.nazwa, k.id_kategori
  2. FROM zakup p
  3. JOIN kategorie k ON p.id_kategori = k.id_kategori
  4. GROUP BY k.id_kategori


i chodzi o 2 kolumny kategorie gdzie jest tylko:

Kategorie
ID|nazwa


zakup
id|nazwa|cena_zakupu|id_kategorie|

sorrki ze cie wprowadzilem w blad z nazwa tabeli zamiast produkt jest zakup
strife
W zapytaniu odwolujesz sie do cena, a w bazie z tego co podales masz cena_zakupu
dawids2411
Pomoze ktos ?
teraz podaje prawidlowe nazwy tabel i kolumn

Kategorie
ID|nazwa
10|sprzet
11|okablowanie

zakup
id|nazwa|id_kategorie|cena_zakupu|

1|router|10|200
2|switch|10|200
3|skretka|11|100
4|koncentryk|11|100
5|swiatlowod|11|100


I teraz jest generowana tabela
id|kategoria|wartosc|produktow|

1|sprzet|400|2
2|okablowanie|300|3

Tak powinno wygladac ale w tabeli wartosc sumuje mi tylko produkty o id 10 i ilosc produktow takze czyli wyglada to tak

1|sprzet|400|2
2|okablowanie|400|3

juz prosciej nie potrafie

Dobra temat do zamknięcia juz sobie poradzilem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.