Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zaawansowany ranking
Forum PHP.pl > Forum > PHP
MaxRipper
Witam . Podczas dalszj budowy strony natknąlem się na problem z wygenerowaniem pozycji w rankingu jaki zajmuje dana recenzja (zdjęcie poniżej)

Problem polega na tym że nie wiem jak pobrać tylko nr danej pozycji z rankingu... Opisy filmow są oparte na bazie danych np link do filmu wygląda tak - film.php?film=3 gdzie 3 to id pobrany z bazy. Co do generowania rankingu to umiem to robić na np osobnej stronie, ale wtedy generuję wszystkie pozycje. Ranking generuję w ten sposób:

[php:1:95b9b3c3a5]<?php
mysql_connect ($dbhost, $dblogin, $dbpass);
mysql_select_db ($db);
function rankinglista()
{
$i = 1;
$zapytanie = "SELECT * FROM filmy ORDER BY srednia DESC";
$wykonaj = mysql_query ($zapytanie);
while ($wiersz = mysql_fetch_array ($wykonaj))
{
echo "<strong>".$i++."</strong>. ".$wiersz['tytulpl']." (".$wiersz['tytulen'].")<br>";
}
}
rankinglista();
?>[/php:1:95b9b3c3a5]

Zauważylem że na wielu dobrych stronach przy opisie filmu mam tez jego pozycję z rankingu ale niestety nie wiem jak to zrobić (podejrzewam że jakoś przy pomocy tablicy ale nigdy sie tablicami nie bawilem więc nie wiem )
uboottd
Na zrobienie tego jednym zapytaniem na razie nie mam pomyslu (znaczy jeden mam, ale to grzyb) natomiast dwoma to luzik:

[php:1:c9faa79248]
$film = mysql_fetch_object(mysql_query("select * from filmy where idfilmu=$film_id"));
$rank = mysql_fetch_object(mysql_query("select count(*) as rank from filmy where srednia > $film->srednia"));
[/php:1:c9faa79248]

Jak Ci zalezy na jednym zapytaniu daj znac.
MaxRipper
Hmm za bardzo nie rozumie dzialania twojego skryptu postaram sie go przeanalizować w tym poście i powiedzieć czego nie wiem:

[php:1:4802277385]<?php
$film = mysql_fetch_object (mysql_query("select * from filmy where idfilmu=$film_id")); // tu wszstko jest jasne - zapytanie wybiera daną komórkę z tabeli jednak $film bym zastąpil na nap $film1 bo $film występuje w linku - film.php?menu=film&film=3 - a wiec prawdopidobnie by się mieszały
?>[/php:1:4802277385]

Dalej już niestety nie kumam:

[php:1:4802277385]<?php
$rank = mysql_fetch_object(mysql_query("select count(*) as rank from filmy where
srednia > $film->srednia")); // nie wiem do czego odnosi się zapytanie as rank - bo jeżeli do tabeli to takowa nie istnieje isnieje z kolei: tytul, srednia, glosow, suma - i wlasnie po tych tabelach należy kształtować jakiś ranking
?>[/php:1:4802277385]
uboottd
"as rank" znaczy tyle, ze wynik wyrazenia (w tym przypadku count(*)) w wyniku jest nazywany rank, czyli z punktu widzenia pobranego wiersza jest tak jakbys mial kolumne rank i z niej wybieral dane.
MaxRipper
no tak a jak wywoływać nr np:

[php:1:1667105df4]<?php
echo "$rank";
?>[/php:1:1667105df4]
uboottd
[php:1:2b8aef5c0e]
echo $rank->rank;
[/php:1:2b8aef5c0e]
MaxRipper
Pięknie działa!
Dzięki masz u mnie piwo albo miejsce w creditsach smile.gif

Pozdrawiam
uboottd
Biorac po uwage ze jestem absolutnym abstynentem to wychodzi ze wole to drugie... winksmiley.jpg
MaxRipper
OKi masz miejsce w creditsach jak w banku smile.gif - umieszczę twoją ksywkę w dziale o nas po skończeniu systemu...
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.