Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Problem z wyswietlaniem sumy wartosci rekordow o roznym id, problem
dawids2411
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 18.05.2011

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


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 ?

Ten post edytował dawids2411 14.07.2012, 18:47:49
Go to the top of the page
+Quote Post
sazian
post
Post #2





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


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
Go to the top of the page
+Quote Post
dawids2411
post
Post #3





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 18.05.2011

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


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

Ten post edytował dawids2411 14.07.2012, 21:42:53
Go to the top of the page
+Quote Post
sazian
post
Post #4





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


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. }
Go to the top of the page
+Quote Post
dawids2411
post
Post #5





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 18.05.2011

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


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)
Go to the top of the page
+Quote Post
sazian
post
Post #6





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


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
Go to the top of the page
+Quote Post
sazian
post
Post #7





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


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
Go to the top of the page
+Quote Post
dawids2411
post
Post #8





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 18.05.2011

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


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

Ten post edytował dawids2411 14.07.2012, 21:14:23
Go to the top of the page
+Quote Post
strife
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


W zapytaniu odwolujesz sie do cena, a w bazie z tego co podales masz cena_zakupu


--------------------
Go to the top of the page
+Quote Post
dawids2411
post
Post #10





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 18.05.2011

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


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

Ten post edytował dawids2411 15.07.2012, 13:20:19
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: 19.08.2025 - 07:35