Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Top 10
kalafior122
post 6.08.2012, 14:45:20
Post #1





Grupa: Zarejestrowani
Postów: 65
Pomógł: 1
Dołączył: 19.03.2012
Skąd: Września

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


Witam potrzebuję pomocy ze skryptem top 10 obrazków napisałem tyle
  1.  
  2. <?php
  3. $q = mysql_query("SELECT plusy,minusy FROM obrazki")
  4.  
  5. while($row = mysql_fetch_array($q)){
  6. $plus = $row["plusy"];
  7. $minus = $row["minus"];
  8. $ocena = $plusy - $minusy;
  9. // i co dalej tongue.gif
  10.  

i nie wiem jakie zapytanie dać żeby wyświetliło w kolejności od najlepiej ocenionego do najgorzej

Ten post edytował kalafior122 6.08.2012, 14:45:48
Go to the top of the page
+Quote Post
Wilwarin
post 6.08.2012, 15:13:42
Post #2





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

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


$q = mysql_query("SELECT plusy,minusy FROM obrazki SORT BY plusy")

@edit najlepiej jakbyś zrobił jeszcze jedną kolumnę w bazie danych która liczy ocenę (plus dodaje minus odejmuje) i poprostu sortować wg tego.

Ten post edytował Wilwarin 6.08.2012, 15:17:26
Go to the top of the page
+Quote Post
abort
post 6.08.2012, 17:37:54
Post #3





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


A nie lepiej przeprojektować bazę (i, niestety, kod też - ale bardzo niewiele)?
I trzymać w bazie zamiast kłosów "za" i "przeciw" po prostu całkowitą ilość oddanych głosów i wynik?
W obu przypadkach w bazie znajduje się tyle samo danych, ale przy podejściu zaproponowanym przeze mnie nie musisz gimnastykować się z zapytaniem do bazy, aby wyciągnąć obrazki, które są:
a) najlepiej oceniane
cool.gif najczęściej oceniane
Go to the top of the page
+Quote Post
GoOx
post 6.08.2012, 17:42:56
Post #4





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

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


to jest źle zbudowane dla while nie używa się row.

  1. $q = mysql_query("SELECT `plusy`, `minusy` FROM `obrazki` ORDER BY `plusy` DESC, `minusy` ASC")
  2.  
  3. /// sortowanie według największej ilości plusów i najmniejszej ilości minusów.
  4.  
  5. while($row = mysql_fetch_assoc($q)){
  6. $plus = $row['plusy'];
  7. $minusy = $row['minusy'];
  8. $ocena = $plusy - $minusy;
  9.  
  10. // brak adresu do obrazka powinien znajdować się w bazie.
  11.  
  12. echo "obrazek Ocena: $ocena";


Ten post edytował GoOx 6.08.2012, 17:45:02
Go to the top of the page
+Quote Post
toaspzoo
post 6.08.2012, 17:48:03
Post #5





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

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


Cytat(GoOx @ 6.08.2012, 18:42:56 ) *
to jest źle zbudowane dla while nie używa się row.

Co się nie używa ?


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

LS Easter egg <
Go to the top of the page
+Quote Post
GoOx
post 6.08.2012, 17:50:26
Post #6





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

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


mysql_fetch_row zwraca tylko jedną zmienną i deklaruje się je poprzez $zmienna[0] $zmienna[1]
Go to the top of the page
+Quote Post
toaspzoo
post 6.08.2012, 17:53:15
Post #7





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

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


Gościu, a gdzie masz tutaj mysql_fetch_row ?

Cytat(GoOx @ 6.08.2012, 18:50:26 ) *
mysql_fetch_row zwraca tylko jedną zmienną i deklaruje się je poprzez $zmienna[0] $zmienna[1]


Nie wypowiadaj się, bo kaleczysz język...

http://php.net/manual/pl/function.mysql-fetch-row.php


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

LS Easter egg <
Go to the top of the page
+Quote Post
krispak
post 6.08.2012, 17:54:46
Post #8





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

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


A tak w ogole to mysql_fetch_row nie zwraca jednej zmiennej tylko tablice numeryczna...


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
Go to the top of the page
+Quote Post
toaspzoo
post 6.08.2012, 17:55:55
Post #9





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

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


No, nareszcie ktoś sensownie się wypowiadający jerry.gif
To chyba tyle w temacie.
Na koniec http://dev.mysql.com/doc/refman/5.0/en/ord...timization.html .


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

LS Easter egg <
Go to the top of the page
+Quote Post
kalafior122
post 8.08.2012, 17:03:10
Post #10





Grupa: Zarejestrowani
Postów: 65
Pomógł: 1
Dołączył: 19.03.2012
Skąd: Września

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


dałem takie zapytanie
  1. $q = mysql_query("SELECT * FROM obrazki Order by ocena desc LIMIT 10");


i dodałem nową kolumnę w tabli o nazwie ocena (dziwne bo działa) tongue.gif

Ten post edytował kalafior122 8.08.2012, 17:03:58
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: 14.08.2025 - 04:08