Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php & mysql] Segregowanie według średniej
oomaster
post
Post #1





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Witam,

Mam dużo problem, szukałem rozwiązania na tym forum i nie mogę znaleźć. Otóż mam w tabeli pola:

firma
status
glos
ocena

Chcę je wyświetlić od tych co mają największą średnią oceny i status 1 więc w polu ocena sumuję oceny wszystkie a w polu glos liczbę głosów czyli wiadomo ocena/glos daje średnią. I mam takie zapytanie długie ale jest nie poprawne, chodzi o kawałek "ocena/glos". Jak tu zrobic by było poprawne ?

  1. SELECT SQL_CALC_FOUND_ROWS * FROM naszefirma WHERE STATUS=1 ORDER BY ocena/glos DESC LIMIT $start, $na_stronie



Pomocy.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
specialplan
post
Post #2





Grupa: Zarejestrowani
Postów: 206
Pomógł: 21
Dołączył: 1.09.2006
Skąd: Edinburgh

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


  1. SELECT SUM(glos) AS glos_suma, SUM(ocena) AS ocena_suma, (ocena_suma/glos_suma) AS srednia FROM nasza_firma WHERE STATUS=1 ORDER BY srednia DESC LIMIT $start, $na_stronie


Tak sobie improwizuje
Go to the top of the page
+Quote Post
oomaster
post
Post #3





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Niestety dalej nie działa.
Cytat
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/noty/domains/xxxxxxx/public_html/firma_top.php on line 54


A oto jak to przerobiłem:

SELECT SQL_CALC_FOUND_ROWS SUM(glos) AS glos_suma, SUM(ocena) AS ocena_suma, (ocena_suma/glos_suma) AS srednia, * FROM naszafirma WHERE status=1 ORDER BY srednia DESC LIMIT $start, $na_stronie

Próbowałem też tak:

SELECT SQL_CALC_FOUND_ROWS, SUM(glos) AS glos_suma, SUM(ocena) AS ocena_suma, (ocena_suma/glos_suma) AS srednia, * FROM naszafirma WHERE status=1 ORDER BY srednia DESC LIMIT $start, $na_stronie

I nie działa :/

Ten post edytował oomaster 6.02.2008, 16:17:26
Go to the top of the page
+Quote Post
specialplan
post
Post #4





Grupa: Zarejestrowani
Postów: 206
Pomógł: 21
Dołączył: 1.09.2006
Skąd: Edinburgh

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


Szczerze mowiac, nie wiem jak zachowuje sie SQL_CALC_FOUND_ROWS - przyznam szczerze, ze nie uzywalem wczesniej. Bez przerobek to co napisalem tez wywala blad?
Go to the top of the page
+Quote Post
oomaster
post
Post #5





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Samego twojego kodu nie testowałem ponieważ nie działało by mi sortowanie na strony. Dlatego nie mogę bez funkcji SQL_CALC_FOUND_ROWS mellow.gif dlatego sytuacja tak sie komplikuje
Go to the top of the page
+Quote Post
specialplan
post
Post #6





Grupa: Zarejestrowani
Postów: 206
Pomógł: 21
Dołączył: 1.09.2006
Skąd: Edinburgh

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


Rozumiem.
Go to the top of the page
+Quote Post
nospor
post
Post #7





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




blad masz tutaj: , *
nie mozesz po przecinku dac *. Musi byc:
  1. .... , naszafirma.* FROM ....


Cytat
ponieważ nie działało by mi sortowanie na strony. Dlatego nie mogę bez funkcji SQL_CALC_FOUND_ROWS mellow.gif dlatego sytuacja tak sie komplikuje
Aj tam. glupoty gadasz winksmiley.jpg
Mozesz spokojnie bez tego SQL_CALC_FOUND_ROWS zrobic sobie zapytanie. A liczbe wierszy wyliczysz zapytaniem z count(*)


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

"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
oomaster
post
Post #8





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


dzięki wam dzięki wam oświeciło mnie podziękowania dla specialplan i nospor'a biggrin.gif

Dla ciekawskich rozwiązanie:
Cytat
SELECT SQL_CALC_FOUND_ROWS * FROM naszafirma WHERE status=1 ORDER BY (ocena/glos) DESC LIMIT $start, $na_stronie
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 Aktualny czas: 21.08.2025 - 11:35