Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sortowanie wyniku z mysql
<?php?>
post 27.11.2005, 21:29:35
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 11.01.2004

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


Mam skrypcik :
  1. <?php
  2.  
  3. $wynik = mysql_query ("SELECT * FROM users LIMIT 0, 30 ") or
  4.  die ("Błąd w pocztaek odczytywania");
  5. while ($rekord = mysql_fetch_array ($wynik)) {
  6. $fid = $rekord[0];
  7. $femail = $rekord[1];
  8. $fname1= $rekord[2];
  9. $fname2 = $rekord[3];
  10. $fgender = $rekord[4];
  11. $fage = $rekord[5];
  12. $bonus = 1;
  13. $total=$fname1+$fname2+$fgender+$bonus;
  14. print("ID:".$fid."Stanek :".$total." pln <br>");
  15.  
  16.  
  17. }
  18.  
  19. ?>

Skrypcik wysiwetla 30 wpisow z mysql i chcialbym zrobic by te wpisy zostały posegregowane w zależnosci od zmiennej $total tzn od najwiekszej do najmiejszej

Jak mam to zrobić ?


--------------------
Notatnik rządzi!
Go to the top of the page
+Quote Post
strife
post 27.11.2005, 22:35:18
Post #2





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

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


Zmień zapytanie?!
  1. SELECT *
  2. FROM users ORDER BY pole ASC LIMIT 0, 30


EDIT
Nie lepiej sumować rekordy poprzez SUM() w mysql ?

sleepysmiley03.gif śpię... jutro zedytuje jak coś...


--------------------
Go to the top of the page
+Quote Post
<?php?>
post 27.11.2005, 22:49:47
Post #3





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 11.01.2004

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


Przeciez zmienna $total nie jest wynikiem z mysql , zmienna total sumuje liczby z mysql kazdego wpisu , i jak dam tak :
  1. SELECT *
  2. FROM users ORDER BY $total ASC LIMIT 0, 30

To oczywiscie wyskakuje błąd " Blad poczatek odczytywania"

Ktoś wie jak to zrobić?


--------------------
Notatnik rządzi!
Go to the top of the page
+Quote Post
mike
post 27.11.2005, 23:04:15
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


1. Segregowanie i sortowanie to dwie różne rzeczy. Nie używaj tych pojęc zamiennie. Zakładam, że chodzi Ci o sortowanie.
2. Sortować możesz po którejś kolumnie a zmienna $total total nie jest chyba nazwę żadne kolumny.

Chyba nie załapałem co masz na myśli. Możesz opisać dokładniej co starasz się osiągnąć?
Go to the top of the page
+Quote Post
<?php?>
post 27.11.2005, 23:11:25
Post #5





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 11.01.2004

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


Cytat(mike_mech @ 2005-11-28 00:04:15)
1. Segregowanie i sortowanie to dwie różne rzeczy. Nie używaj tych pojęc zamiennie. Zakładam, że chodzi Ci o sortowanie.
2. Sortować możesz po którejś kolumnie a zmienna $total total nie jest chyba nazwę żadne kolumny.

Chyba nie załapałem co masz na myśli. Możesz opisać dokładniej co starasz się osiągnąć?

Zmienna total sumuje kilka pól z każdego wiersza mysql następnie wyswietla wszystkie wyniki w postaci jakis tam ID i jakas suma tych 4 pól (z mysql)
wygląda to tak :

ID:7Stanek :1.745 pln
ID:6Stanek :12.97601 pln
ID:5Stanek :-3.29 pln
ID:8Stanek :1.35 pln
ID:9Stanek :1.32 pln
ID:10Stanek :1.07 pln

Ale ja chce by wynik wyswietlil sie od największej kwoty do najmiejszej ( tą kwotą jest zmienna total) czyli :

ID:6Stanek :12.97601 pln
ID:7Stanek :1.745 pln
ID:8Stanek :1.35 pln
ID:9Stanek :1.32 pln
ID:10Stanek :1.07 pln
ID:5Stanek :-3.29 pln

rozumiesz ? jak mam to zrobić?


--------------------
Notatnik rządzi!
Go to the top of the page
+Quote Post
SongoQ
post 27.11.2005, 23:17:03
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


  1. SELECT *
  2. FROM users ORDER BY pole1 + pole2 + ..... ASC LIMIT 0, 30

A jak nie zadziala to wstaw po select alias i w order by daj alias


--------------------
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: 28.04.2024 - 10:56