Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] wyszukiwanie po działaniu
colinQ
post 27.01.2008, 14:36:06
Post #1





Grupa: Zarejestrowani
Postów: 340
Pomógł: 2
Dołączył: 25.12.2006

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


Przypuśćmy że mam taką tabelkę:

  1. | login| haslo | wartosc1 | wartosc2 | wartosc3 |


I chcę aby SQL wykonał takie działanie (wartosc1 * 50%) + (wartosc2 * 25%) + (wartosc3 * 25%)
I wszystko posegregował malejąco. Da się tak?


--------------------
-> Kanał YouTube: http://www.youtube.com/user/screencup
-> Screencup - podcast/screencast, recenzja Makowych aplikacji
-> www.screencup.pl - witryna internetowa podcastu
Go to the top of the page
+Quote Post
Grzyw
post 27.01.2008, 14:54:33
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


  1. SELECT login, wartosc1 / 2 AS wartosc1, wartosc2 / 4 AS wartosc2, wartosc3 / 4 AS wartosc 3 FROM TABELA ORDER BY .... DESC
|

Jeżeli się mylę, to sorry smile.gif Nigdy nie robiłem działań matematycznych bezp. z poziomu SQL


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
colinQ
post 27.01.2008, 15:14:02
Post #3





Grupa: Zarejestrowani
Postów: 340
Pomógł: 2
Dołączył: 25.12.2006

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


ale order by co?

ORDER'em powinno być to działanie...

Tylko jak to zrobić...?


--------------------
-> Kanał YouTube: http://www.youtube.com/user/screencup
-> Screencup - podcast/screencast, recenzja Makowych aplikacji
-> www.screencup.pl - witryna internetowa podcastu
Go to the top of the page
+Quote Post
Grzyw
post 27.01.2008, 15:20:08
Post #4





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


Ale według której kolumny chcesz sortować?


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
b_chmura
post 27.01.2008, 15:22:24
Post #5





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


Chodzi o to
  1. SELECT login, (wartosc1 * 0.5), (wartosc2 * 0.25), (wartosc3 * 0.25) FROM `nazwa_tabeli` ORDER BY (wartosc1 * 0.5), (wartosc2 * 0.25), (wartosc3 * 0.25) DESC


albo o to

  1. SELECT * FROM `nazwa_tabeli` ORDER BY ((wartosc1 * 0.5) + (wartosc2 * 0.25) + (wartosc3 * 0.25)) DESC


czy jeszcze o coś innego?

Edit
ewentualnie

  1. SELECT login, (wartosc1 * 0.5), (wartosc2 * 0.25), (wartosc3 * 0.25) FROM `nazwa_tabeli` ORDER BY ((wartosc1 * 0.5) + (wartosc2 * 0.25) + (wartosc3 * 0.25)) DESC


Ten post edytował b_chmura 27.01.2008, 15:24:42
Go to the top of the page
+Quote Post
colinQ
post 27.01.2008, 17:43:38
Post #6





Grupa: Zarejestrowani
Postów: 340
Pomógł: 2
Dołączył: 25.12.2006

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


właśnie wg. tego wyliczenia

tak, dzięki, pomogłeś smile.gif

Kurcze, jest problem :/

Bo zrobiłem ranking na podstawie tego zapytania i źle pokazuje...

  1. <?php
  2. function ranking_pokaz_rank() {
  3.  
  4. $zapytaj = mysql_query("SELECT * FROM `users` ORDER BY ((walki * 0.5) + (pkt_ataku * 0.25) + (pkt_obrony * 0.25)) DESC");
  5.  
  6. $ile = mysql_num_rows($zapytaj);
  7.  
  8. echo '<table style=font-size:11px;color:black; cellspacing=5><tr>
  9. <td style=outline-style:solid;outline-width:thin;outline-color:#444444 width=12%><center>lp.</td>
  10. <td style=outline-style:solid;outline-width:thin;outline-color:#444444 width=15%><center>id</td>
  11. <td style=outline-style:solid;outline-width:thin;outline-color:#444444 width=33%><center>login</td>
  12. <td style=outline-style:solid;outline-width:thin;outline-color:#444444 width=15%><center>kraj</td>
  13. <td style=outline-style:solid;outline-width:thin;outline-color:#444444 width=10%><center>punkty</td>
  14. </tr>';
  15.  
  16. $lp = 0;
  17.  
  18. for($i=1; $i <= $ile; $i++) {
  19.  
  20. $fetch = mysql_fetch_assoc($zapytaj);
  21.  
  22. $punkty = round(($fetch['walki'] * 0.5) + ($fetch['pkt_ataku'] * 0.25) + ($fetch['pkt_obrony']));
  23.  
  24. $login = $fetch['log'];
  25.  
  26. if($fetch['kraj'] == 'Polska')
  27. $flaga = 'flaga_polska.gif';
  28. if($dfetch['kraj'] == 'zsrr')
  29. $flaga = 'flaga_zsrr.gif';
  30. if($fetch['kraj'] == 'III Rzesza')
  31. $flaga = 'flaga_3rzesza.gif';
  32.  
  33. if($login !== "Konrad" && $login !== "Genro" && !isset($loginy[$login])) {
  34.  
  35. $lp += 1;
  36.  
  37. echo "<tr>
  38. <td width=12%><center>$lp</td>
  39. <td width=15%><center>".$fetch['id']."</td>
  40. <td width=33%><center>".$fetch['log']."</td>
  41. <td width=15%><center><img src=grafika/".$flaga."></td>
  42. <td width=10%><center><b>$punkty</b></td>
  43. </tr>";
  44.  
  45. $loginy[$login] = $login;
  46.  
  47. }
  48.  
  49. }
  50.  
  51. echo '</table>';
  52.  
  53. }
  54. ?>



link do rankingu: http://iiws.ugu.pl/index.php?frame=ranking




Problem:

zobaczcie na pole punkty :/


--------------------
-> Kanał YouTube: http://www.youtube.com/user/screencup
-> Screencup - podcast/screencast, recenzja Makowych aplikacji
-> www.screencup.pl - witryna internetowa podcastu
Go to the top of the page
+Quote Post
Kicok
post 27.01.2008, 19:55:57
Post #7





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Cytat
+ ($fetch['pkt_obrony'])


zapomniałeś o " * 0.25" ...


--------------------
"Sumienie mam czyste, bo nieużywane."
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: 24.07.2025 - 17:05