Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Sumowanie elementów tablicy
mczlowiek
post 24.04.2009, 07:18:21
Post #1





Grupa: Zarejestrowani
Postów: 210
Pomógł: 0
Dołączył: 26.05.2008

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


witam
mam tablice:

ID -- Nazwa --- Wartosc
1 ----aaaaaa----10
2 ----aaaaaa----15
3 ----bbbbbb-----25
4 ----aaaaaa-----110
5 ----cccccc-----10
6 ----cccccc ------10
itd

Chce teraz aby wuswietlalo mi na stronie top 3 wartosci, np
1. aaaaaa 1500
2. bbbbbb 300
c. dddddd 150

jak ugryźć takie zapytanie do bazy?
Go to the top of the page
+Quote Post
phpion
post 24.04.2009, 07:19:31
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Pocztaj o funkcjach agregujących w MySQL, a w szczególności o SUM(). Ponadto poczytaj o GROUP BY. Tyle Ci wystarczy.
Go to the top of the page
+Quote Post
mczlowiek
post 24.04.2009, 07:28:59
Post #3





Grupa: Zarejestrowani
Postów: 210
Pomógł: 0
Dołączył: 26.05.2008

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


  1. <?php
  2. $sql = mysql_query("
  3.                                        SELECT  autor, SUM (profit) as suma
  4.                                        FROM  typy
  5.                                        GROUP BY autor
  6.                                        LIMIT 0,3");
  7.                                while($w = mysql_fetch_array($sql)){
  8.                                    echo('
  9.                                    <li class="lista">'.$w['autor'].' : '.$w['suma'].'</li>
  10.                                    ');                                
  11.                                }
  12. ?>


niestety zwaraca mi błąd:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /tktbetpl/domains/tktbetpl.twojhost.pl/public_html/glowna.php on line 469

a linia 469 wskazyje na:
  1. <?php
  2. while($w = mysql_fetch_array($sql)){
  3. ?>

co jest nie tak?
Go to the top of the page
+Quote Post
nospor
post 24.04.2009, 07:34:24
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




kurde, ile razy nalezy ci mowic ze masz robic tak:
  1. <?php
  2. $sql = 'twoj sql';
  3. $res = mysql_query($sql) or die(mysql_error());
  4. ?>


ps: jakbys nie zalapal to chodzi o te mysql_error()


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mczlowiek
post 24.04.2009, 07:37:31
Post #5





Grupa: Zarejestrowani
Postów: 210
Pomógł: 0
Dołączył: 26.05.2008

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


FUNCTION SUM does not exist

edit: załapałem o co chodzi winksmiley.jpg

Ten post edytował mczlowiek 24.04.2009, 07:38:03
Go to the top of the page
+Quote Post
nospor
post 24.04.2009, 07:40:18
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
załapałem o co chodzi
tja.... tylko ze juz poraz nty ci to przypominam. jeszcze raz zobacze ze nie masz mysql_error i uczciwie ci mowie ze zarobisz warna z moderką.

co do problemu
nie:SUM (profit)
a: SUM(profit)


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mczlowiek
post 24.04.2009, 07:42:03
Post #7





Grupa: Zarejestrowani
Postów: 210
Pomógł: 0
Dołączył: 26.05.2008

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


wówczas: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /tktbetpl/domains/tktbetpl.twojhost.pl/public_html/glowna.php on line 475

  1. <?php
  2. mysql_query("set names utf8");
  3.                                $sql = '
  4.                                        SELECT  autor, SUM(profit) as suma
  5.                                        FROM  typy
  6.                                        GROUP BY autor
  7.                                        LIMIT 0,3';
  8.                                $w = mysql_query($sql) or die(mysql_error());
  9.  
  10.                                        
  11.                                        
  12.                                        
  13.                                        
  14.                               [/b][u] while($w = mysql_fetch_array($sql)){[/u][b] <---475
  15.                                    echo('
  16.                                    <li class="lista">'.$w['autor'].' : '.$w['suma'].'</li>
  17.                                    ');                                
  18.                                }
  19. ?>

Go to the top of the page
+Quote Post
nospor
post 24.04.2009, 07:43:12
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$w = mysql_query($sql)
$w = mysql_fetch_array($sql)

pogrubilem ci to i owo... no mysl troche.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mczlowiek
post 24.04.2009, 12:10:17
Post #9





Grupa: Zarejestrowani
Postów: 210
Pomógł: 0
Dołączył: 26.05.2008

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


  1. <?php
  2. mysql_query("set names utf8");
  3.                                $sql = '
  4.                                        SELECT  autor, SUM(profit) as suma
  5.                                        FROM  typy
  6.                                        GROUP BY autor
  7.                                        LIMIT 0,3';
  8.                                $res = mysql_query($sql) or die(mysql_error());
  9.                                        
  10.                                while($row = mysql_fetch_array($res)){
  11.                                    echo('
  12.                                    <li class="lista">'.$row['autor'].' : '.$row['suma'].'</li>
  13.                                    ');                                
  14.                                }
  15. ?>

jestem wielki tongue.gif biggrin.gif

aby nie zakladac nowego atematu:
jak posortowac po k.klub?

  1. <?php
  2. mysql_query("set names utf8");
  3.                                $sql = "    SELECT * FROM kluby k  
  4.                                            LEFT JOIN zawodnicy z ON z.id_klubu=k.id_klub WHERE k.id_liga='".$_GET['id_liga']." ORDER BY k.klub'
  5.                                            
  6.                                        UNION
  7.                                            SELECT * FROM kluby k
  8.                                            RIGHT JOIN zawodnicy z ON z.id_klubu=k.id_klub WHERE k.id_liga='".$_GET['id_liga']."'  AND k.id_klub IS NULL        
  9.                                            ";
  10.                                $wynik = mysql_query($sql) or die(mysql_error());
  11. .....
  12. ?>

teraz niby jest ale nie sortuje....
Go to the top of the page
+Quote Post
nospor
post 24.04.2009, 12:13:43
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




pewnie ciezko zajrzec do manuala i doczytac co oni na ten temat napisali?

http://dev.mysql.com/doc/refman/5.0/en/union.html


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mczlowiek
post 24.04.2009, 12:28:32
Post #11





Grupa: Zarejestrowani
Postów: 210
Pomógł: 0
Dołączył: 26.05.2008

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


nie ciężko patrzyłem , ale nie mogę dojsc co jest nie tak
  1. <?php
  2. $sql = "    SELECT * FROM kluby k  
  3.                                            LEFT JOIN zawodnicy z ON z.id_klubu=k.id_klub WHERE k.id_liga='".$_GET['id_liga']." ORDER BY k.klub'
  4.                                            
  5.                                        UNION
  6.                                            SELECT * FROM kluby k
  7.                                            RIGHT JOIN zawodnicy z ON z.id_klubu=k.id_klub WHERE k.id_liga='".$_GET['id_liga']."'  AND k.id_klub IS NULL        
  8.                                            ORDER BY k.klub
  9.                                            ";
  10. ?>

dostaje:
Unknown column 'k.klub' in 'order clause'
choć tak kolumna w bazie istneije

działać działa, ale czy to jest poprawnie zapisane?
  1. <?php
  2. $sql = "   ( SELECT * FROM kluby k  
  3.                                            LEFT JOIN zawodnicy z ON z.id_klubu=k.id_klub
  4.                                            WHERE k.id_liga='".$_GET['id_liga']."' ORDER BY k.klub )                                            
  5.                                        UNION
  6.                                            (SELECT * FROM kluby k
  7.                                            RIGHT JOIN zawodnicy z ON z.id_klubu=k.id_klub
  8.                                            WHERE k.id_liga='".$_GET['id_liga']."'  AND k.id_klub IS NULL        
  9.                                            ORDER BY k.klub)ORDER BY klub
  10.                                            ";
  11. ?>
Go to the top of the page
+Quote Post
ddiceman
post 24.04.2009, 12:49:51
Post #12





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

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


Niepotrzebnie sortujesz 3 razy zmaiast raz. Wsytarczy

  1. <?php
  2. $sql = "   ( SELECT * FROM kluby k  
  3.                                           LEFT JOIN zawodnicy z ON z.id_klubu=k.id_klub
  4.                                           WHERE k.id_liga='".$_GET['id_liga']."' )                                            
  5.                                       UNION
  6.                                           (SELECT * FROM kluby k
  7.                                           RIGHT JOIN zawodnicy z ON z.id_klubu=k.id_klub
  8.                                           WHERE k.id_liga='".$_GET['id_liga']."'  AND k.id_klub IS NULL
  9.                                            )ORDER BY klub
  10.                                           ";
  11. ?>
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:19