Ok ich habe das Problem mittels einer sessionID gelöst indem ich die seesionID mit dem produkt-primärschlüssel gleichgestzt habe.
Und von dem hab ich die Datenbankeintragung abhängig gemacht.
Trotzdem Danke an die Leute die es sich angeguckt haben.
Ok ich habe das Problem mittels einer sessionID gelöst indem ich die seesionID mit dem produkt-primärschlüssel gleichgestzt habe.
Und von dem hab ich die Datenbankeintragung abhängig gemacht.
Trotzdem Danke an die Leute die es sich angeguckt haben.
Hallo,
Ich muss für eine Präsentation eine kleine Internetseite mittels PHP und mySQL entwerfen und dort eine Bewertungsfunktion einfügen. Das hat soweit alles einwandfrei geklappt. Ich habe eine Pizzabestellseite mit Produktauflistung erstellt, wobei bei jedem Produkt ein Bewertungsbutton zu einer php-seite führt auf der man mittels radiobuttons 1-5sterne verteilen kann, wobei der Send-button auf eine erfolgsseite weiterleitet in der die DB-einträge gemacht werden.
Lange Rede, kurze Frage: Ich möchte mittels session verhindern, dass ein user mehr als einmal für ein produkt während einer session abstimmt. wie mach ich das?
habe es schon soweit, dass man allgemein nur einmal abstimmen kann...
Die Bewertungsseite:
<?php
/*Verbindung zum DB-server*/
$host="localhost";
$user="root";
$pass="";
$db="pizza";
mysql_connect($host, $user, $pass);
mysql_select_db($db);
$abfrage="SELECT * FROM produkt WHERE produktnr = '".$_POST['btSend']."';";
$ergebnisID= mysql_query($abfrage);
$datensatzanzahl = mysql_num_rows($ergebnisID);
echo "<h2>Sie möchten folgendes Produkt bewerten:</h2>";
if($datensatzanzahl>0)
{
while($rs = mysql_fetch_assoc($ergebnisID))
{
echo "<p class='pnr'>Bestellnummer: ".$rs['produktnr']."</p>";
echo "<div class='liste'>";
echo "<div class='name'><span class='f'>".$rs['art'].":</span>".$rs['name']."</div>";
echo "<div class='pic'><img src='bilder/".$rs['bild']."' alt='Bild'></div>";
echo "<div class='zutat'><p><span class='f'>Zutaten:</span><br>".$rs['zutaten']."</p>";
echo "<div class='bewertung2'>";
if($rs['anzahl']>0)
{
$sterne = $rs['bewertung']/$rs['anzahl'];
$rundstern = round ($sterne,0);
echo "Anzahl Bewertungen: ".$rs['anzahl']."<br>";
echo "<div class='none'><p class='left'>Sterne: <span class='f'>".number_format($sterne,2,".",",")."</span> von 5 |<span class='k'>Sie bewerten...</span></p>";
echo "<img src='bilder/".$rundstern."sterne.jpg' alt='sternenbild'></div>";
}
else
{
echo "Keine Bewertungen vorhanden!";
}
}
echo "</div></div>";
echo "</div>";
}
else
{
echo "Fehler!";
}
echo "<h3>Wählen Sie die Anzahl der Sterne aus.</h3>";
echo "<form method='post' action='danke.php'>";
echo "<input type='radio' name='rbS' value='1'>1 ";
echo "<input type='radio' name='rbS' value='2'>2 ";
echo "<input type='radio' name='rbS' value='3' checked='checked'>3 ";
echo "<input type='radio' name='rbS' value='4'>4 ";
echo "<input type='radio' name='rbS' value='5'>5 ";
echo "<button type='submit' name='btBewertung' value='".$_POST['btSend']."'>Bewertung abschicken</button>";
echo "</form>";
echo "<br><a href='liste.php'>Zurück zur Produktliste</a>";
mysql_close();
?>
Alles anzeigen
Die DB-Eintragungsseite:
<?php
/*Verbindung zum DB-server*/
$host="localhost";
$user="root";
$pass="";
$db="pizza";
mysql_connect($host, $user, $pass);
mysql_select_db($db);
$abfrage ="SELECT* FROM produkt WHERE produktnr = '".$_POST['btBewertung']."';";
$ergebnisID= mysql_query($abfrage);
$datensatzanzahl = mysql_num_rows($ergebnisID);
$sql = "UPDATE produkt SET anzahl = anzahl+1, bewertung = bewertung+".$_POST['rbS']." WHERE produktnr = '".$_POST['btBewertung']."';";
$erfolg = mysql_query($sql);
$num = mysql_affected_rows();
if($num>0)
{
echo "<div class='danke'><img src='bilder/".$_POST['rbS']."sterne.jpg' alt='sternenbild'></div>";
echo "<h3>Ihre Bewertung wurde erfolgreich hinzugefügt!</h3>";
}
else
{
echo"<h3>Es ist ein Fehler aufgetreten, ihre Bewertung konnte nicht hinzugefügt werden.</h3>";
}
mysql_close();
?>
Alles anzeigen
P.S.:Ich bin ein ziemlicher Anfänger auf diesem Gebiet, also bitte lacht nicht über Formatierung o.ä.