PHP Tutorials, PHP Forum, PHP Community and more ... MyWebsolution.de!

Sidebar

Home News Tutorials Workshops Tipps Artikel Gästebuch Sitemap

Suche

Members

Forum Login Registrierung

Statistik

Statistikbereich
Jetzt5
Heute257
Gestern271
Gesamt239345

Tutorials

Autor Flitze
Klicks 6605
Bewertungen 102
Rating 8.1
Stand 29.05.2009

Keywords
PHP Rating System, Bewertung Tutorial, Rating Tutorial, PHP Bewertungssystem, Inhalte bewerten, Rating erstellen, Rangfolge erstellen, Inhalte bewerten

Social Bookmarking:

PHP Ratingsystem

Seite : 1 2 3 4 5 6 7 Bewerten

Anzeige der Witze mit Bewertungsinterface


Nun können wir die Witze auslesen und dem User ein Interface zum Speichern einer Bewertung zur Verfügung stellen. Das werde ich zunächst mit einer einfach select-Auswahlliste verwirklich. Wie ihr eine optisch ansprechendere Darstellung in Form eines Bewertungsbalkens mit Sternen a lá Youtube erstellt könnt, erkläre ich in meinem Bewertungsbalken-Tipp :) Die Datei zum Anzeigen nenne ich show_witze.php.

PHP:
<?php
    $sql 
"SELECT
                ID,
                DATE_FORMAT(Datum, '%d.%m.%Y') as Datum,
                Witz,
                Titel,
                (Rating_Summe/Rating_Anzahl) as Rating
            FROM
                Witze
            ORDER BY
                Rating DESC
           "
;
    
$result mysql_query($sql) OR die(mysql_error()."<pre>".$sql."</pre>");

    
// Witze anzeigen
    
while($row mysql_fetch_assoc($result)){;
        echo 
"<h2>".htmlentities($row['Titel'],ENT_QUOTES)."</h2>\n".
             
"<p><span style=\"font-size:10px;\">vom: ".$row['Datum']."</span><br>".
            
nl2br(htmlentities($row['Witz'],ENT_QUOTES)).
            
"</p>";
        echo 
"<form action=\"rate_witz.php\" method=\"post\">\n".
             
"<select name=\"Bewertung\">\n".
             
"<option value=\"0\">Punktzahl auswählen</option>\n";
        for(
$i 1$i <= 5$i++){
            if(
round($row['Rating']) == $i)
                echo 
"<option value=\"".$i."\" selected>".$i."</option>\n";
            else
                echo 
"<option value=\"".$i."\">".$i."</option>\n";
        }
        echo 
"</select>\n";
        echo 
"<input type=\"hidden\" name=\"ID\" value=\"".$row['ID']."\">\n";
        echo 
"<input type=\"submit\" name=\"submit\" value=\"Bewerten\">\n";
        echo 
"</form>\n";
    }
?>

Zunächst werden alle Witze aus der Datenbank ausgewählt. Beim Datum wird eine Funktion (DATE_FORMAT) verwendet, die das MySQL-interne Datumsformat in das uns bekannte, deutsche Datumsformat (DD.MM.JJJJ) umwandelt. Das Rating wird als Quotient aus Summe und Anzahl ausgelesen, so dass ich nach diesem Kriterium sortieren kann. So könnte man später auch eine Rangliste erstellen – man muss lediglich noch eine LIMIT-Klausel einfügen, damit nicht alle sondern nur die (z.B.) Top 50 ausgegeben werden.
An dieser Stelle ist anzumerken, dass MySQL anscheinen kein Problem damit hat durch 0 zu teilen. Ihr könnt das einfach ausprobieren/nachvollziehen, denn beim Einfügen (mittels der add_witz.php) werden sowohl Rating_Anzahl als auch Rating_Summe auf 0 gesetzt. Beim Auslesen wird nun die Summe durch die Anzahl geteilt, es gibt aber keine Fehlermeldung. Allerdings muss man MySQL zu Gute halten, dass der Wert immerhin auf NULL gesetzt wird :)
Die select-Liste bekommt denjenigen Wert als Default-Wert, der dem gerundeten Rating entspricht. Wurde noch nichts bewertet, wird der erste Punkt (also die Bewertungsaufforderung) vorausgewählt. Das Formular, das die select-Liste umschließt, verweist nach Klicken des "Bewerten"-Buttons auf die Datei rate_witz.php, deren Inhalt ich im nächsten Kapitel erläutere. « Zurück Weiter »

»» Zurück zum Menu

Ranking

Tutorials (9)

Besucherstatistik8.7
BB Code8.7
Dateien in PHP üb...8.4

Workshops (3)

Sessions in PHP8.8
Loginsystem8.4
Bildergalerie7.1

Tipps (9)

Diagrammklasse9.5
Verbindung zur My...9
in_array für Java...8.7

Artikel (12)

WasserbettenGuerilla10
Linkbuilding bzw....8.4
Geld im Internet ...7.8

Partner & Links


Valid HTML 4.01 Transitional
Valid CSS
nach oben

 
 
© MyWebsolution.de
2006-2008