Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php mysql] Jak posortowac wynik z SQL'a
babatunde
post 7.10.2006, 14:13:21
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 1.06.2005

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


Mam takie pytanie jak zrobic sorotowanie wyniku zapytania do MS SQL, tak jak to jest np. w roznych sklepach internetowych sorotowanie wg. ceny rosnaco/malejaco, czy tez sortowanie nazwisk jak to jest na roznych forach.
Szukałem tego jako sortowanie i nigdzie nie znalazlem wytłumaczenia problemu, a w związku z tym ze ucze sie dopiero php to prosze bardzo o pomoc, jak zrobic aby posortowac wynik np. po nazwiskach czy aktywnosci i aby uzytkownik mogl sobie to posortowac rosnaco (naciskajac button) i malejaco (naciskajac drugi button) umieszczony w pierwszej linni tabeli przy np. "Nazwisko" czy "Aktywność"

Mam cos takiego zapytanie:
  1. <table width="580" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" bgcolor="#FFFFFF">
  2. <tr align="center" valign="middle">
  3. <td>Imie</td>
  4. <td>Nazwisko</td>
  5. <td>Aktywnosc</td>
  6.  
  7. <?php
  8. $conn = mssql_connect("localhost", "user", "qwerty12345")
  9. or die('nie dalo sie polaczyc');
  10. mssql_select_db("Baza", $conn)
  11. or die("nie dalo sie wybrac bazy");
  12. function query($query)
  13. {
  14. global $conn;
  15. return mssql_query($query, $conn);
  16. }
  17.  
  18. $query = "SELECT * FROM Osoby ORDER BY NAZWA ASC";
  19. $result = mssql_query($query)
  20. or die("Zapytanie odrzucone");
  21.  
  22.  
  23.  
  24.  
  25. while ($row = mssql_fetch_array($result)) {
  26. echo "<TR><TD>" . $row["Min"] ."</TD><td>" .
  27.  $row["Imie"] ."</TD><td>" .
  28. $row["Nazwisko"] ."</TD><td>" .
  29.  $row["Nazwa"] ."</TD><td>" .
  30.  $row["Aktywnosc"] ."</TD>" .
  31.  "n";
  32. }
  33.  
  34. mssql_free_result($result);
  35. mssql_close($link);
  36. ?>
  37. </table>

Gdyby ktos był tak miły i podpowiedział jakimś przykładem, linkiem do wyjaśnienia tego po polsku czy nakierował jak tego szukać byłbym bardzo wdzięczny...
Go to the top of the page
+Quote Post
wipo
post 7.10.2006, 14:20:08
Post #2





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


Cytat(babatunde @ 7.10.2006, 15:13:21 ) *
Mam takie pytanie jak zrobic sorotowanie wyniku zapytania do MS SQL, tak jak to jest np. w roznych sklepach internetowych sorotowanie wg. ceny rosnaco/malejaco, czy tez sortowanie nazwisk jak to jest na roznych forach.
Szukałem tego jako sortowanie i nigdzie nie znalazlem wytłumaczenia problemu, a w związku z tym ze ucze sie dopiero php to prosze bardzo o pomoc, jak zrobic aby posortowac wynik np. po nazwiskach czy aktywnosci i aby uzytkownik mogl sobie to posortowac rosnaco (naciskajac button) i malejaco (naciskajac drugi button) umieszczony w pierwszej linni tabeli przy np. "Nazwisko" czy "Aktywność"

Mam cos takiego zapytanie:
  1. <table width="580" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" bgcolor="#FFFFFF">
  2. <tr align="center" valign="middle">
  3. <td>Imie</td>
  4. <td>Nazwisko</td>
  5. <td>Aktywnosc</td>
  6.  
  7. <?php
  8. $conn = mssql_connect("localhost", "user", "qwerty12345")
  9. or die('nie dalo sie polaczyc');
  10. mssql_select_db("Baza", $conn)
  11. or die("nie dalo sie wybrac bazy");
  12. function query($query)
  13. {
  14. global $conn;
  15. return mssql_query($query, $conn);
  16. }
  17.  
  18. $query = "SELECT * FROM Osoby ORDER BY NAZWA ASC";
  19. $result = mssql_query($query)
  20. or die("Zapytanie odrzucone");
  21.  
  22.  
  23.  
  24.  
  25. while ($row = mssql_fetch_array($result)) {
  26. echo "<TR><TD>" . $row["Min"] ."</TD><td>" .
  27.  $row["Imie"] ."</TD><td>" .
  28. $row["Nazwisko"] ."</TD><td>" .
  29.  $row["Nazwa"] ."</TD><td>" .
  30.  $row["Aktywnosc"] ."</TD>" .
  31.  "n";
  32. }
  33.  
  34. mssql_free_result($result);
  35. mssql_close($link);
  36. ?>
  37. </table>

Gdyby ktos był tak miły i podpowiedział jakimś przykładem, linkiem do wyjaśnienia tego po polsku czy nakierował jak tego szukać byłbym bardzo wdzięczny...

order by nazwa_pola


--------------------
Go to the top of the page
+Quote Post
Kuziu
post 7.10.2006, 14:21:16
Post #3





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Przesyłasz sobie zmienną GET'em lub POST'em z informacją względem czego ma być sortowane np.

  1. <?php
  2. $query = 'SELECT * FROM Osoby ORDER BY ';
  3. switch($_GET['sortby']){
  4. case 'name': $query .= 'name'; break;
  5. case 'age': $query .= 'age'; break;
  6. default: $query .= 'name'; break;
  7. }
  8. ?>


No i oczywiscie dopisujesz odpowiednio wiecej case'ow.

Do tego mozesz przeslac zmienna DESC lub nie by byla odwrotna kolejnosc:
  1. <?php
  2. if(isset($_GET['desc']))
  3. $query .= ' DESC';
  4. ?>


Ten post edytował Kuziu 7.10.2006, 14:21:29


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
babatunde
post 8.10.2006, 20:57:24
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 1.06.2005

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


A gdzie dopisuje ten fragment ze zminenna do buttona? Czy gdzie indziej?
Go to the top of the page
+Quote Post
1010
post 8.10.2006, 22:26:37
Post #5





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


jakiego buttona?


--------------------
Go to the top of the page
+Quote Post
erix
post 9.10.2006, 07:16:53
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Np.
  1. <a href="plik.php?sortby=name">Nazwą</a>


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
babatunde
post 9.10.2006, 18:04:59
Post #7





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 1.06.2005

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


Cytat(1010 @ 8.10.2006, 21:26:37 ) *
jakiego buttona?

no takiego mam nazwe kolumny np. nazwiska i obok niej mam strzalke gora i strzalke w dol.
No i chcialbym zeby po na poczaktu zapytanie do sql'a szło bez żadnych kryterow sortowania i wyswietlalo sie np. wg kolejnosci wpisow np. z kolumny Id, ale zebym mogl przy np. nazwisku kliknac sobie na strzalke w dol i miec posortowane to od A do Z a jakbym chcial odwrotnie to kliknalbym strzalke w gore....
Go to the top of the page
+Quote Post
Lonas
post 9.10.2006, 21:11:16
Post #8





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

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


No to zrób sobie domyslne sortowanie wedlug ID,
i na strzalkach linki - np przekazujesz $_GET - wartosc wedlug ktorej sorotwac i po sprawie

  1. <?php
  2. $sortuj = $_GET['sortuj'];
  3.  
  4. if(isset($sortuj)) { 
  5. $sortuj = $_GET['sortuj']; 
  6. }else {
  7. $sortuj = 'id'; }
  8.  
  9.  
  10. $zapytanie = mysql_ ..... (" order by $sortuj" );
  11. ?>


--------------------
Go to the top of the page
+Quote Post
pataka
post 18.02.2007, 23:09:06
Post #9





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 13.08.2006

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


Cytat(Kuziu @ 7.10.2006, 14:21:16 ) *
  1. <?php
  2. $query = 'SELECT * FROM Osoby ORDER BY ';
  3. switch($_GET['sortby']){
  4. case 'name': $query .= 'name'; break;
  5. case 'age': $query .= 'age'; break;
  6. default: $query .= 'name'; break;
  7. }
  8. ?>


Do tego mozesz przeslac zmienna DESC lub nie by byla odwrotna kolejnosc:
  1. <?php
  2. if(isset($_GET['desc']))
  3. $query .= ' DESC';
  4. ?>

A ja mam takie pytanie jak zrobić, aby po posortowaniu wg. wyżej wymienionego sposobu nie utracić zmiennej przeslanej przez 'post'?questionmark.gif

Mam tabele w której sa kolumny Data | Symbol | Dane
i teraz wstawilem powyższy skrypt, ale wcześniej przez
  1. <form action="" method="post">
i menu select chciałbym wybrać sobie Symbol, wszystko dziala ok i po wybraniu z menu (select) do zapytania SQL'owego dodawane jest to:
  1. WHERE Symbol = 'i tu zmienna przeslana postem z menu select'

I zwracany jest wynik zawezony do jednego z 5 symboli...
Ale po wybraniu sortowania, tracę zmienną przesłaną przez post...
Tak więc, może ktoś podpowie - co zrobić aby zmienna ($Symbol) przesłana przez post została zapamiętana?
I w momencie kiedy zmieniam wybrany symbol i po ponownym przesortowaniu znow nie utracić nowej wartości zmiennej $Symbol

Ten post edytował pataka 19.02.2007, 00:15: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: 15.07.2025 - 04:25