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)的影響。 –