Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyświetlanie posortowanych wyników z bazy
Forum PHP.pl > Forum > Przedszkole
flaa
#edit

Jednak problem z głowy, nie doceniłem możliwości while'a wink.gif
Można skasować moje wypociny


Helo

Domyślam się, że mój problem należy raczej do podstawowych, ale już od godziny grzebię w kursach i nie umiem znaleźć nic odpowiedniego...
Zrobiłem sobie licznik wyświetleń i chcę zrobić na stronie listę 10 najpopularniejszych wyników. W tym celu wyciągam po kolei dane z 4 kolumn (osobno): każdą z nich sortuję według licznika, by potem poskładać je w listę, czyli na przykład:
$utwor = mysql_query("SELECT utwor FROM zespoly ORDER BY licznik DESC LIMIT 10");
potem we while'u:
$row = mysql_fetch_array($utwor, MYSQL_NUM)
i wynik wyświetlam za pomocą: $row[$x];
zmienna $x pochodzi z pętli for, za pomocą której wypisuję 10 najpopularniejszych wyników.
To samo robię z (m.in.) 'wykonawcą' i lista wyświetla mi się na zasadzie:
$row2[0] (wykonawca) - $row[0] (autor)
$row2[1] (wykonawca) - $row[1] (autor)
....
czyli:
Black sabbath - Paranoid
The clash - London Calling
...

Problem jest taki, że dane te mieszają mi się, gdy licznik jest jednakowy dla obu rekordów - np konkretny 'utwór' będzie źle dopasowany z tak samo posortowanym 'wykonawcą'. Od razu powiem, że dodanie drugiego warunku sortowania nie przynosi efektów.
Chcę to więc posortować za jednym zamachem, tzn zamiast pojedynczego wyciągania zrobić SELECT * FROM zespoły (...). W kursach przeczytałem, że da się potem za pomocą while'a wyciągnąć te dane - np $row[0] będzie oznaczało utwór, $row[1] będzie oznaczało zespół itd. Nie mam tylko pojęcia w jaki sposób użyć tu pętli for (może nie jest potrzebna?), by wypisać wszystkich 10 wyników, a nie tylko dane z jednego wiersza.

pozdrawiam
flaa
Ilware
podaj jak wyglada tabela w bazie
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.