0
我试图为网站创建评分系统。我能够从数据库中检索项目并在每个项目下显示5个单选按钮。 5个单选按钮的值为1到5.更新基于单选按钮值的数据库
我试图根据所选单选按钮的值更新每个项目的评分。
我有以下代码:
<?php
$results = $mysqli->query("SELECT * FROM programmes ORDER BY ProgrammeName ASC");
if ($results) {
$i=0;
echo '<table><tr>';
echo '<br/>';
echo '<br/>';
while($obj = $results->fetch_object())
{
echo '<td>';
echo '<div class="tvProgs">';
echo '<form method="post" id = "programmes" action="">';
echo "<input type=\"hidden\" name=\"progID\" value=\"".htmlentities($obj->ProgrammeID)."\" />";
echo '<div class="progImage"><img src="images/'.$obj->Image.'"></div>';
echo '<div class="progTitle"><h3>'.$obj->ProgrammeName.'</h3>';
echo '<div class="progRating"><h4>'.$obj->Rating.'</h4></div>';
echo '<input type="radio" class="rating-input" id="rate" name="rate" value="1">';
echo '<input type="radio" class="rating-input" id="rate" name="rate" value="2">';
echo '<input type="radio" class="rating-input" id="rate" name="rate" value="3">';
echo '<input type="radio" class="rating-input" id="rate" name="rate" value="4">';
echo '<input type="radio" class="rating-input" id="rate" name="rate" value="5">';
echo '<br/>';
echo '</form>';
echo '</div>';
echo '</td>';
$i++;
if ($i == 5 OR $i == 10) {
echo '</tr><tr>';
}
}
echo '</tr></table>';
}
if(isset($_POST['rate'])){
$newRating = $_POST['rate'];
$ID = $_POST['progID'];
$upsql = "UPDATE programmes SET Rating = Rating + $newRating WHERE ProgrammeID='$ID'";
$stmt = $mysqli->prepare($upsql);
$stmt->execute();
}
?>
所有代码的工作,除了在那里IM添加到已存储在数据库中的电流额定值Update语句罚款。
有人可以帮助我了解如何解决这个问题
谢谢!
什么问题? – Akshay
问题可能是你的代码不包含任何'UPDATE'语句? – syck
为什么它是“评级+ $新增”?如果以前的评分是(比如说)'3',并且用户选择了'5',那么你的数据库中最终会加上'8',这对1-5的评分来说是相当的评价。而且你很容易受到[sql注入攻击](http://bobby-tables.com)的影响。 –