gpt4 book ai didi

PHP Mysql IF 语句

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

我目前正在开发一个有 2 个链接的网站。赞成票和反对票。投票存储在 mysql 中名为“data”的表中,其中包含“yes”和“no”列

我已成功创建一个查询来更新"is"或“否”的计数,然后将值回显到页面。然而,目前用户可以垃圾点击按钮,并且计数将持续增加。

我已开始使用 $ip = $_SERVER['REMOTE_ADDR']; 记录 IP 地址;并将它们放入名为“ips”的表中,其中包含“ipaddresses”列。

现在,我想更改我的代码,以便它将查询 mysql 并检查“ips”表中的 $ip,如果返回 true,则 die(); else if... 执行点赞查询。这将使一个人每个 IP 只能投票一次。

这是我当前的代码:

<?php
if ($_GET['vote']=="yes") {
// Connection to database
$connection=mysqli_connect("hostname-here","username-here","password-here","database-here");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($connection,"UPDATE data SET yes = (yes + 1) WHERE ID = $_GET[id];");
mysqli_close($connection);

echo "Voted.";
}
?>

帮助将不胜感激,我已经用谷歌搜索了很多,但找不到任何有用的东西。谢谢!

最佳答案

如果有人已经投票,您不应该使用 IP 作为决定因素。多个用户可以来自同一个 IP。

如果您想这样做,您应该创建一个新表。我们称之为“user_action”。该表应该有一个名为 IP 的列,另一个名为 VOTE 的列。您必须记录每个单独的用户操作,并在更新“数据”表之前检查 IP。

编辑:一些伪代码可以为您提供更多帮助。

创建您的表:

CREATE TABLE user_action (IP varchar(39), VOTE tinyint(1));

简单的 PHP 逻辑。只需填写实际的 MySQL 命令(您显然已经知道如何从您的 OP 中执行此操作)

    $sSql = "SELECT vote FROM user_action WHERE IP = '" . $_SERVER['REMOTE_ADDR'] ."'";

If (rowcount > 1) {
//User already voted, update their answer.
$sSql = "UPDATE user_action SET vote = " .$_GET['vote']. " WHERE IP = '" . $_SERVER['REMOTE_ADDR'] ."'";
}
Else {
//User hasn't voted, insert their answer
$sSql = "INSERT INTO user_action (vote, ip) VALUES(" .$_GET['vote']. ", '" . $_SERVER['REMOTE_ADDR'] ."'";
}

如果您想知道您有多少票:

$sSql = "SELECT sum(vote) FROM user_action WHERE vote = 1";

关于PHP Mysql IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34599172/

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