Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Top 10
Forum PHP.pl > Forum > Przedszkole
kalafior122
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
Wilwarin
$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.
abort
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
GoOx
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";
toaspzoo
Cytat(GoOx @ 6.08.2012, 18:42:56 ) *
to jest źle zbudowane dla while nie używa się row.

Co się nie używa ?
GoOx
mysql_fetch_row zwraca tylko jedną zmienną i deklaruje się je poprzez $zmienna[0] $zmienna[1]
toaspzoo
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
krispak
A tak w ogole to mysql_fetch_row nie zwraca jednej zmiennej tylko tablice numeryczna...
toaspzoo
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 .
kalafior122
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.