Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyciagniecie wartosci z bazy danych i podanie ktorą jest z kolei
arfer
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.04.2012

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


Witam
Mam 2 kolumny w tabeli bazy danych: uzytkownik i wartosc w liczbach
Chcialbym wyciagnac informacje ktora z kolei jest wybrana przeze mnie wartosc.
Przyklad:

ID uzytkownika - Wartosc
1 - 5
2 - 3
3 - 8
4 - 10

Przy ograniczeniu id wybranego przeze mnie uzytkownika ( uzytkownik_id='".$_GET['uzytkownik_id']."' ) dla powiedzmy id 3 wyciagnieta wartoscia bedzie 8. Moje pytanie brzmi czy jest jakies zapytanie ktore policzyloby ktora w kolejnosci od najmniejszej do najwiekszej jest to wartosci czyli przy moich wartosciach 3-5-8-10 jest 3 wartoscia i zwroci mi '3'

pozdrawiam (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


@Niktoś: Zaproponowane przez Ciebie rozwiązanie w ogóle nijak się ma do przedstawionego problemu.

@arfer: Zapytanie, które zrobi to co chcesz do prostych nie należy i pewnie nie będzie zbyt optymalne, niemniej wyglądałoby ono tak:
  1. SELECT * FROM (
  2. SELECT @i := @i + 1 AS pozycja, delivered1.uzytkownik_id, delivered1.suma FROM (SELECT @i := 0) AS init_position, (
  3. SELECT uzytkownik_id, SUM(wartosc) AS suma FROM DB_WYNIKI GROUP BY uzytkownik_id ORDER BY suma ASC
  4. ) AS delivered1
  5. ) AS delivered2 WHERE delivered2.uzytkownik_id = $_GET['uzytkownik_id']

a jako zmienna w PHP:
  1. $sql = "SELECT * FROM (
  2. SELECT @i := @i + 1 AS pozycja, delivered1.uzytkownik_id, delivered1.suma FROM (SELECT @i := 0) AS init_position, (
  3. SELECT uzytkownik_id, SUM(wartosc) AS suma FROM " . DB_WYNIKI . " GROUP BY uzytkownik_id ORDER BY suma ASC
  4. ) AS delivered1
  5. ) AS delivered2 WHERE delivered2.uzytkownik_id = " . $_GET['uzytkownik_id'];


Przy czym strukturę tabeli DB_WYNIKI wywróżyłem z fusów, a że wróżką najlepszą nie jestem to i zapytanie może nie zadziałać (IMG:style_emoticons/default/wink.gif) Jeśli nie zadziała, to podaj strukturę tabeli DB_WYNIKI. Jeśli natomiast zadziała, to pozostaje jeszcze kwestia sprawdzenia optymalności, bo może szybciej byłoby skorzystać tutaj z funkcji PHP operujących na tablicach.

Ten post edytował mortus 1.05.2012, 22:00:19
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 04:57