gpt4 book ai didi

php - 根据单选按钮值更新数据库

转载 作者:行者123 更新时间:2023-11-29 11:54:40 24 4
gpt4 key购买 nike

我正在尝试为网站创建一个评级系统。我能够从数据库中检索项目并在每个项目下显示 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();
}

?>

除了 Update 语句之外,所有代码都工作正常,其中我将添加到已存储在数据库中的当前评级。

有人可以帮我解决这个问题

谢谢!

最佳答案

您需要捕获错误条件,这将告诉您语句有什么问题(如果有)。此外,您还应该正确使用准备好的语句以避免安全问题。最后,您应该在显示数据之前执行数据库插入,以确保显示最新数据。

if(isset($_POST['rate'])){
$upsql = "UPDATE programmes SET Rating = Rating + ? WHERE ProgrammeID = ?";
$stmt = $mysqli->prepare($upsql);
if (!$stmt) {
echo "Error preparing: " . $mysqli->error . "<br/>";
} else {
$stmt->bind_param('is', $_POST['rate'], $_POST['progID']);
if (!$stmt->execute()) {
echo "Error executing: " . $mysqli->error . "<br/>";
} else {
echo $stmt->affected_rows . "rows affected<br/>";
}
}
}

$results = $mysqli->query("SELECT * FROM programmes ORDER BY ProgrammeName ASC");
if ($results) {
...

关于php - 根据单选按钮值更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33420705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com