Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: POMOCY - funkcja SUM() nie dziala w zapytaniu
Forum PHP.pl > Forum > Bazy danych > MySQL
luckyluc
Witam wszystkich !

Jestem tu nowy i mam problem. Goraco prosze o pomoc.

Posiadam dwie tabele:

dane:

id | imie | nazwisko |
---------------------
1 | adam | nowak
---------------------
2 | kazek | kowalski

glosowanie:

id | login | punktysuma |
1 | 1 | 20
---------------------
2 | 2 | 10
---------------------
3 | 2 | 5
---------------------
4 | 1 |1
---------------------
5 | 1 |20

Zapytanie ma dodac punkty w tabeli glosowanie dla danego loginu i wyswietlic wyniki w kolejnosci od najwiekszej ilosci punktow do najmiejszej.

  1. <?php
  2.  
  3. $zapytanie = "SELECT d.id, d.nazwisko, g.login, sum(g.punktysuma) suma FROM dane d, glosowanie g WHERE d.id=g.login ORDER BY suma desc"; 
  4.  
  5. $wykonaj = mysql_query($zapytanie);
  6. while($wiersz = mysql_fetch_array($wykonaj)) {
  7.  
  8. $count++;
  9.  
  10. echo "
  11.  
  12. <div align=center><center><table border=0 width=250 cellpadding=2 cellspacing=2><tr>
  13.  
  14. <td width=20 bgcolor=#FAFAFA>$count.</td>
  15. <td width=150 bgcolor=#FAFAFA>$wiersz[nazwisko]</td>
  16. <td width=80 bgcolor=#FAFAFA><center><font color=red><b>$wiersz[suma] pkt.</b></font></center></td>
  17.  
  18. </tr></table></center></div>
  19.  
  20. <br>";
  21.  
  22. }
  23.  
  24.  
  25. ?>

poprawiam
---
nospor




Niestety pojawia sie nastepujacy komunikat:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
wijet
Dawno nie śmigalem SQLem ale według mnie bład jest w zapytaniu
Funkcja SUM() to funkcja agregująca wiec powinna zastać użyta z GROUP BY

  1. SELECT d.id, d.nazwisko, g.login, sum(g.punktysuma) suma
  2. FROM dane
  3. d,glosowanie g WHERE d.id=g.login GROUP BY suma ORDER BY suma DESC


EDIT:

Manual: Group-by-functions

Gdy sktypt wywala taki błąd
Cytat
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

to zwykle znaczy że zapytanie nie zwrócilo wyniku.
nospor
A ja to przeniosę na bazki, gdyż powyzszy blad spowodowany jest blędnym zapytaniem

ps: iprosze uzywac bbcode do kodu
luckyluc
Teraz dziala cool.gif Dziekuje i ponizej wklejam poprawny kod:



  1.  
  2. <?php
  3.  
  4. $zapytanie = "SELECT d.id, d.nazwisko, g.login, sum(g.punktysuma) suma FROM dane d, glosowanie g WHERE d.id=g.login GROUP BY d.id ORDER BY s
    uma desc"
    ;
  5.  
  6. $wykonaj = mysql_query($zapytanie);
  7. while($wiersz = mysql_fetch_array($wykonaj)) {
  8.  
  9. $count++;
  10.  
  11. echo "
  12.  
  13. <div align=center><center><table border=0 width=250 cellpadding=2 cellspacing=2><tr>
  14.  
  15. <td width=20 bgcolor=#FAFAFA>$count.</td>
  16. <td width=150 bgcolor=#FAFAFA>$wiersz[nazwisko]</td>
  17. <td width=80 bgcolor=#FAFAFA><center><font color=red><b>$wiersz[suma] pkt.</b></font></center></td>
  18.  
  19. </tr></table></center></div>
  20.  
  21. <br>";
  22.  
  23. }
  24.  
  25. ?>
  26.  
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.