php - 简单的评级系统;获取当前条目的 ID 并发布到表中

标签 php mysql forms

我有一个页面,根据用户单击的链接($pagename)显示 mysql 条目的数据。我想知道如何创建一个非常基本的评级系统,该系统将包含一个带有下拉列表的表单选项为 1 到 5,当用户提交该值时,会将数据发布到当前页面上条目对应的 ID。

   <?php
$pagename = $_GET['name'];
$sql = "SELECT * FROM tblCocktail WHERE name = '$pagename' LIMIT 1";
/*$sql = sprintf(%sql, mysql_real_escape_string($pagename));*/
$result = mysql_query($sql);
if(!$result) {
    // error occured
}
$data = mysql_fetch_assoc($result);
echo "<p class=\"paratitle\">".$data["name"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>";
echo "<p class=\"paratitle3\">".$data["howto"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>";
echo "<p class=\"paratitle2\">".$data["ingredient1"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>";
echo "<p class=\"paratitle3\">".$data["quantity1"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>";
echo "<p class=\"paratitle2\">".$data["ingredient2"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>";
echo "<p class=\"paratitle3\">".$data["quantity2"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>";
echo "<p class=\"paratitle2\">".$data["ingredient3"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>";
echo "<p class=\"paratitle3\">".$data["quantity3"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>";
echo "<p class=\"dateadded\">".$data["dateadded"]."&nbsp;&nbsp;&nbsp;&nbsp;</p>";
?>
                        </div>
                    </div>
                    <div id="cont2">
                        <div id="contentwrap">
                    <form method="POST" action="addrating.php" >
           <input type="hidden" name="cocktailID" value="<?=$data["id"]?>">
           <select id="ratinglevel" name="ratinglevel">
              <option></option>
              <option>1</option>
              <option>2</option>
              <option>3</option>
              <option>4</option>
              <option>5</option>
            </select>
            <input type="submit" value="submit" />
            </form>

addRating.php:

<?php
mysql_select_db("mwheywood", $con);

//insert cocktail details
$sql="INSERT INTO tblRating (cocktailID, value, counter)
VALUES
('$_POST[id]','$_POST[ratinglevel]','1'";

if (!mysql_query($sql,$con))
  {
  die('Error: you fail at life' . mysql_error());
  }
echo "<p>Thanks for voting</p>"

?>

我想要保存评级的表通过“cocktailID”链接到上面代码中回显的数据。

“tblRating”的表结构为: ratingID,cocktailID, value, counter..

因此,我希望将选项值保存到“值”字段中相应的“cocktailID”,并将“1”发布到计数器字段。

-任何帮助表示赞赏-matt

最佳答案

当您发送这样的表单时,只需包含当前 ID

           <form method="POST" action="addrating.php" >
           <input type="hidden" name="cocktailID" value="<?=$data["id"]?>">
           <select id="ratinglevel" name="ratinglevel">
              <option></option>
              <option>1</option>
              <option>2</option>
              <option>3</option>
              <option>4</option>
              <option>5</option>
            </select>
            </form>

然后,这将返回 ID 以及表单结果,此时您将获得可用的cocktailID

    if (isset($_POST['cocktailID']) && isset($_POST['ratinglevel']))
        $sql = "INSERT INTO tblRating SET cocktailID = ".mysql_real_escape_string($_POST['cocktailID']).", value = ".mysql_real_escape_string($_POST['ratinglevel']).",counter = 1";
        $result = mysql_query($sql);
        if(!$result) {
            // error occured
        }
    }

关于php - 简单的评级系统;获取当前条目的 ID 并发布到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10425934/

相关文章:

php - 按 id ASC 从数据库顺序中选择最后 3 行

sql - 这两个 MySQL 查询中哪个更有效?

php - 使用命名空间中的所有类

php - 在不进行处理的情况下在线获取信用卡信息——如何最好地做到这一点?

php - 打印成员之间的关系

mysql存储过程-按列索引排序

jquery - 同时使用表单提交和重定向

php - 使用 AJAX 的 Symfony 4 验证器

javascript - React 中的数据管理策略

php - 匹配 wp_usermeta 中的多个值以从 wp_users 表获取电子邮件