gpt4 book ai didi

php - 单击元素时如何更新表行+1?

转载 作者:行者123 更新时间:2023-11-29 02:19:29 26 4
gpt4 key购买 nike

我正在构建一个问题投票系统。该站点的访问者可以每天一次或类似地投票,就他们最喜欢的问题进行投票。 如何在单击特定问题的按钮时对 QuestionVotes 行 +1?

我的代码:

<?php
$connection = mysqli_connect('localhost', 'root', '', 'test');
mysqli_set_charset($connection, 'utf8');
if (!$connection) {
die("Database connection failed: " . mysqli_error());
}
$sql = "SELECT QuestionHeader, QuestionText, QuestionVotes FROM question ORDER BY QuestionVotes DESC LIMIT 3";
$result = $connection->query($sql);

if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<div class=\"col-md-4\"><h2>". $row["QuestionHeader"]. "</h2><p>". $row["QuestionText"]. "</p><p><a class=\"btn btn-success\"> " . $row["QuestionVotes"] . "</a></p></div>";
}
} else {
echo "0 results";
}

$connection->close();
?>

我想我必须以某种方式存储 QuestionID,然后在单击按钮时检索它,但我不知道如何做?我如何避免人们对同一个问题投票两次?

最佳答案

好吧,您将需要更改您的数据库表或创建链接在一起并具有一对多关系的其他表,问题表是 1,存储每个 用户投票 的表是许多方面。

  1. 每个问题都应该有一个唯一的 ID

  2. 如上所示,循环遍历 Questions 表中的问题。每行都应有一个按钮,单击该按钮会将问题 ID + 用户 ID/(IP 地址 - 如果系统对非注册用户开放)传递到 user's vote 表。

    2a。要在每次唯一用户单击 vote 按钮时增加计数,您必须通过 Fetch 用户的按钮中获取 Count投票 表以查看问题 ID 存在的次数。

  3. 但是,在将数据存储到数据库之前,检查user's vote 表,看看用户 ID + 问题 ID 是否已经匹配,如果是的话;返回一条消息,告诉用户他们已经对该问题进行了投票(或者你可以花点时间在页面上做一个 if 检查,如果有匹配 - 禁用投票按钮)

     $dbname = "DB HERE";
    $servername = "HOST HERE";
    $username = "DB USER HERE";
    $password = "DB PASSWORD HERE";

    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);

    if(isset($_GET['id']))
    {
    ///Check to see if user already voted
    $result = $conn->query("SELECT * FROM User_Votes where user id = $session_id and question_id = $id");
    $row_cnt = $result->num_rows;

    if($row_cnt < 1)
    {
    ///SQL to insert vote into Users Votes table
    }else
    {
    //Vote already exists
    }

    }

    // Loop through questions for voting
    $result = mysqli_query($conn,"select * from questions");
    while($db_questions = mysqli_fetch_object($result))
    {
    echo $db_questions->question_title;
    echo '- <a href="mypage.php?id=$db_questions->question_id">Click to Vote</a>;
    }

关于php - 单击元素时如何更新表行+1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34141160/

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