Seite 1 von 1

Zufällige "Top Filme" auf der Startseite

Verfasst: Mo 10. Mär 2008, 15:25
von xadox
Vorab: Ich habe die Forumsuche bereits danach durchsucht...

Auf meiner Startseite werden 21 "Top Filme" und 28 "Beste Bewertete Filme" angezeigt. Nun werden aber bei den "Top Filme" nur die ersten 21 Top Filme des Alphabets angezeigt, sprich #-A. Bei den "Beste Bewertete Filme" ist es ähnlich, hier sehe ich seit Ewigkeiten immer nur die selben Filme.

Top Filme die mit dem Buchstaben B oder Z beginnen bekommt der Nutzer auf der Startseite nie zu gesicht. Gibt es eine Möglichkeit Top Filme & Beste Bewertete Filme zufällig auf der Startseite anzeigen zu lassen?

Re: Zufällige "Top Filme" auf der Startseite

Verfasst: Mo 10. Mär 2008, 15:39
von Lifestyle
xadox hat geschrieben:
Auf meiner Startseite werden 21 "Top Filme" und 28 "Beste Bewertete Filme" angezeigt. Nun werden aber bei den "Top Filme" nur die ersten 21 Top Filme des Alphabets angezeigt, sprich #-A. Bei den "Beste Bewertete Filme" ist es ähnlich, hier sehe ich seit Ewigkeiten immer nur die selben Filme.
Habe ich bei den Topfilmen bisher auch so feststellen können, bei den best bewerteten FIlmen, werden wie es mir scheint ab einer bestimmten Bewertungen kreunz und quer angezeigt,....

Muss im Detail allerdings der domi beantworten !!

Re: Zufällige "Top Filme" auf der Startseite

Verfasst: Mo 10. Mär 2008, 18:18
von Butzemann
Geht ganz einfach, habs mal grad getestet, um die Filme zufällig anzuordnen:

1. Gehe in den Ordner "includes" in die Datei "Menu287_Startseite.php"
2. Für die Topfilme, gehe zur Zeile:

Code: Alles auswählen

        $sql .= " ORDER BY Titel ASC LIMIT $settings->anzTopFilme";
Ersetze diese mit:

Code: Alles auswählen

        $sql .= " ORDER BY RAND() LIMIT $settings->anzTopFilme";
3. Für die TopBewertetenFilme, gehe zur Zeile:

Code: Alles auswählen

        $sql .= " ORDER BY Bewertung DESC LIMIT $settings->anzBestFilme";
Ersetze diese mit:

Code: Alles auswählen

        $sql .= " ORDER BY RAND() LIMIT $settings->anzBestFilme";

Re: Zufällige "Top Filme" auf der Startseite

Verfasst: Mo 10. Mär 2008, 20:02
von xadox
Danke. Wenn man weiß wie und wo sieht immer alles so einfach aus :lol:
Butzemann hat geschrieben: 3. Für die TopBewertetenFilme, gehe zur Zeile:

Code: Alles auswählen

        $sql .= " ORDER BY Bewertung DESC LIMIT $settings->anzBestFilme";
Ersetze diese mit:

Code: Alles auswählen

        $sql .= " ORDER BY RAND() LIMIT $settings->anzBestFilme";
Dies Resultiert leider darin das auch Filme mit einer Bewertung von 4 oder kleiner Auftauchen. Man müsste noch ein SELECT setzen das Filme mit Bewertungen <=7 oder so ausfiltert.

Re: Zufällige "Top Filme" auf der Startseite

Verfasst: Mi 12. Mär 2008, 23:00
von Lifestyle
hi,

damit du nur noch die filme siehst, die größer einer bestimmten bewertung sind,....

musst du

Code: Alles auswählen

$sql .= " WHERE hatThumbnail=1 AND " . $myDB->sqlForPriv;
durch folgendes ersetzen:

Code: Alles auswählen

$sql .= " WHERE hatThumbnail=1 AND Bewertung >=8 AND " . $myDB->sqlForPriv;
Wobei 8 für den Wert steht, ab wann die Filme angeziegt werden sollen !!

Re: Zufällige "Top Filme" auf der Startseite

Verfasst: Do 13. Mär 2008, 06:58
von xadox
Vielen Dank :mrgreen:

Re: Zufällige "Top Filme" auf der Startseite

Verfasst: Sa 26. Apr 2008, 12:35
von Lifestyle
Ich habe die Abfrage für die TopFilme nochmal optimiert.
Durch die hier vorgeschlagene Änderung werden die Filme unsortiert ausgegeben.

Damit die Ausgabe sortiert erfolgt:

Einfach in der Datei Menu287_Startseite.php im inlcudes Ordner

folgenden Code:

Code: Alles auswählen

        $sql = "SELECT co.FILME_FilmID, FilmID, Titel, Originaltitel, FSK, Jahr, Laufzeit, co.Rang, Appendix, Extension FROM $myDB->FILME fi " .
                "INNER JOIN $myDB->COVERS co ON co.FILME_FilmID=fi.FilmID ";
        if ( $myVar->GenreID != 0 )
            $sql .= " INNER JOIN $myDB->FILME_GENRES fg ON fi.FilmID = fg.FILME_FilmID AND fg.GENRES_GenreID = $myVar->GenreID";
        if (  $myVar->FormatID != 0 )
            $sql .= " INNER JOIN $myDB->FORMATE ON fi.FORMATE_FormatID = FormatID AND FormatID = $myVar->FormatID";
        if (  $myVar->CollectID != 0 )
            $sql .= " INNER JOIN $myDB->COLLECT ON fi.COLLECT_CollectID = CollectID AND CollectID = $myVar->CollectID";

        $sql .= " WHERE istTopfilm=1 AND hatThumbnail=1 AND " . $myDB->sqlForPriv;
        $sql .= " ORDER BY Titel ASC LIMIT $settings->anzTopFilme";
durch diesen ersetzen:

Code: Alles auswählen

        $sql = "SELECT * FROM (SELECT co.FILME_FilmID, FilmID, Titel, Originaltitel, FSK, Jahr, Laufzeit, co.Rang, Appendix, Extension FROM $myDB->FILME fi " .
                "INNER JOIN $myDB->COVERS co ON co.FILME_FilmID=fi.FilmID ";
        if ( $myVar->GenreID != 0 )
            $sql .= " INNER JOIN $myDB->FILME_GENRES fg ON fi.FilmID = fg.FILME_FilmID AND fg.GENRES_GenreID = $myVar->GenreID";
        if (  $myVar->FormatID != 0 )
            $sql .= " INNER JOIN $myDB->FORMATE ON fi.FORMATE_FormatID = FormatID AND FormatID = $myVar->FormatID";
        if (  $myVar->CollectID != 0 )
            $sql .= " INNER JOIN $myDB->COLLECT ON fi.COLLECT_CollectID = CollectID AND CollectID = $myVar->CollectID";

        $sql .= " WHERE istTopfilm=1 AND hatThumbnail=1 AND " . $myDB->sqlForPriv;
        $sql .= " ORDER BY RAND() LIMIT $settings->anzTopFilme) AS a ORDER BY Titel ASC LIMIT $settings->anzTopFilme";