Php 为什么我的数据库中的数据没有更新?

Php 为什么我的数据库中的数据没有更新?,php,Php,我正在尝试更新数据库中的一行。我第一次点击其中一个选项,两个选项都会被“1”填充。之后的每一次点击都不起作用。我检查了一个网站,看看我的语法是否正确,它说没有错误。我使用PHP的时间不长,所以我真的不知道哪里会出错 我很抱歉,如果修复是超级简单,但正如我所说,我没有这么做很长时间 这些选项是我和我朋友的名字,所以我对它们进行了审查 <?php include_once('db_feat.php'); $vote1 = $_POST['friend']; $vote2 = $_POST['

我正在尝试更新数据库中的一行。我第一次点击其中一个选项,两个选项都会被“1”填充。之后的每一次点击都不起作用。我检查了一个网站,看看我的语法是否正确,它说没有错误。我使用PHP的时间不长,所以我真的不知道哪里会出错

我很抱歉,如果修复是超级简单,但正如我所说,我没有这么做很长时间

这些选项是我和我朋友的名字,所以我对它们进行了审查

<?php
include_once('db_feat.php');

$vote1 = $_POST['friend'];
$vote2 = $_POST['me'];
$vote = '';

$select = "SELECT * FROM `vote` WHERE 1";
mysqli_query($db_feat, $select);

$currentfriend = $row['friend'];
$currentme = $row['me'];

$finalfriend = '';
$finalme = '';

if($vote == $votefriend) {
    $finalfriend = $currentfriend + 1;
} else {
    $finalfriend = $currentfriend + 0;
}
if($vote == $voteme) {
    $finalme = $currentme + 1; 
} else {
    $finalme = $currentme + 0;
}

$insert = "UPDATE `vote` SET `friend`=$finalfriend,`me`=$finalme WHERE 1";
mysqli_query($db_feat, $insert);

if (!mysqli_query($db_feat,$insert)){
    echo("Error description: " . mysqli_error($db_feat));
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>index.php</title>
    <meta charset="UTF-8">
    <link rel="shortcut icon" href="Media/Images/favicon.ico" type="image/x-icon" />
    <link rel="stylesheet" type="text/css" href="CSS/divs.css">
    <link rel="stylesheet" type="text/css" href="CSS/styles.css">
    </head>

<body>
    <?php include_once('template_pageTop.php'); ?>
    <div id="pageMiddle">
        <div id="content">
            <div id="poll">
                <form action="index.php" method="post">
                    <input type="image" src="Media/Images/votefriend.png" name="friend" id="friend">
                    <input type="image" src="Media/Images/voteme.png" name="me" id="me">
                </form>
            </div>

            <?php echo $finalfriend; ?></br />
            <?php echo $finalme; ?>
        </div>
    </div>
    <?php include_once('template_pageBottom.php'); ?>
</body>

应该是这样的

table
if ($_POST['form']) {
    if ($_POST['friend']) {
        $vote1 = $_POST['friend'];
    } else {
        echo "Friend is empty";
        exit;
    }
    if ($_POST['me']) {
    $vote2 = $_POST['me'];
    } else {
        echo "Me is empty";
        exit;
    }

    //rest of your code//
} else {
    echo "form was not received";
    exit;
}
初始值

my_name | my_friend_name
1       | 1
更新后

my_name | my_friend_name
2       | 2

2或其他符合您要求的内容首先,您的查询语法似乎有误。您的
WHERE
子句应该如下所示

$select = "SELECT * FROM `vote` WHERE friend = 1";
$insert = "UPDATE `vote` SET `friend`= {$final1},`me`= {$final2} WHERE friend = 1";
有些别的事情要考虑。在代码的这一部分中,您正在执行的
$var+0
没有任何效果,最好使用原始值。另外,请尝试使用相同的比较运算符(==而不是==),这样您就会知道这些值完全相同

if($vote === $votefriend) {
    $finalfriend = $currentfriend + 1;
} else {
    $finalfriend = $currentfriend;
}
if($vote === $voteme) {
    $finalme = $currentme + 1; 
} else {
    $finalme = $currentme;
}
此外,您永远不希望盲目地为变量赋值并尝试使用它们。始终验证/清理。你应该有这样的结构

table
if ($_POST['form']) {
    if ($_POST['friend']) {
        $vote1 = $_POST['friend'];
    } else {
        echo "Friend is empty";
        exit;
    }
    if ($_POST['me']) {
    $vote2 = $_POST['me'];
    } else {
        echo "Me is empty";
        exit;
    }

    //rest of your code//
} else {
    echo "form was not received";
    exit;
}
如果您的
$\u POST
值为空,很明显,它们没有从表单中写入PHP脚本,可能是因为它没有提交


我强烈建议您从一开始就养成良好的习惯和技巧,这样您就不必再回头去修复(曾经出现过)错误代码。

您的查询完全是不规则的。其中1=最终1美元?这到底是什么?首先发布您的表格结构,然后我们将能够提出建议。您是否检查了
$\u post['1']
$\u POST['2']打印?当您只提供数字1和时,哪里需要列名2@MohammadFaisal我回复了$\u POST、$currentfriend/me和$votefriend/me,它们都是空白的