Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在If语句中使用php正确更新mysql数据?_Php_Sql_Mysqli - Fatal编程技术网

如何在If语句中使用php正确更新mysql数据?

如何在If语句中使用php正确更新mysql数据?,php,sql,mysqli,Php,Sql,Mysqli,我已经在这个问题上纠缠了几个小时,我的研究也没有帮到我。仅当输入与数据库中已有的名称匹配时,我才尝试更新数据库。如何修复此代码并感谢您的帮助 //Input <form> <input type="text" class="form-control" aria-describedby="emailHelp" name="name_input" placeholder="Enter Name">

我已经在这个问题上纠缠了几个小时,我的研究也没有帮到我。仅当输入与数据库中已有的名称匹配时,我才尝试更新数据库。如何修复此代码并感谢您的帮助

         //Input 
      <form>
        <input  type="text" class="form-control" aria-describedby="emailHelp" name="name_input" placeholder="Enter Name">
              </div>

        <a href="" name="name_btn" class="btn btn-primary">Enter</a>
        </div> 
      </form>


    //The PHP code 

    $name = "";
    $name_input = "";
    $points = "";

    if(isset($_POST['name_btn'])){

        $name_input = strip_tags($_POST['name_input']);
        $name = $user['name'];
        $points = $user['points'];

    if($name_input == $name) {

        $points = points + 3;

    $upate_data = mysqli_query($con, "UPDATE users SET points='$points' WHERE id='4'");

    } 
    }
//输入
//PHP代码
$name=“”;
$name_input=“”;
$points=“”;
如果(isset($\u POST['name\u btn'])){
$name\u input=strip\u标签($\u POST['name\u input']);
$name=$user['name'];
$points=$user['points'];
如果($name_input==$name){
$points=points+3;
$upate_data=mysqli_query($con,“更新用户设置点=”$points',其中id='4');
} 
}

您可以通过使用select查询并获取返回行的计数来测试结果是否存在。比如,

$query = "SELECT * FROM $table WHERE username = '$name_input'";
$result = mysqli_query($conn, $query);
$count = mysqli_num_rows($result);
if($count > 0){
    //the result exists
    $points = points + 3;
    $upate_data = mysqli_query($con, "UPDATE users SET points='$points' WHERE id='4'");
}else{
    //result does not exist
}

我还看到您在这里获得
name
变量的post数据
$name\u input=strip\u标记($\u post['name'])
但是在表单中,输入字段的name属性是
name\u input
这里
您应该检查一下。

您应该在表单中添加一个方法,而且href不适用于post,应该是这样的:

//Input 
<form method="post">
    <input  type="text" class="form-control" aria-describedby="emailHelp" name="name" placeholder="Enter Name">
    </div>

    <!-- <a href="" name="name_btn" class="btn btn-primary">Enter</a> -->

    <input type="submit" value="Submit" name="name_btn">
    </div> 
</form>


//The PHP code 

<?php

$databaseHost = 'localhost';
$databaseName = 'testing';
$databaseUsername = 'root';
$databasePassword = '';

$con = mysqli_connect($databaseHost, $databaseUsername, $databasePassword, $databaseName);

$name = "";
$name_input = "";
$points = "";

if(isset($_POST['name_btn'])){

    echo "aaa";

    $name_input = strip_tags($_POST['name']);
    $name = $user['name'];
    $points = $user['points'];


echo "&nbsp&nbsp Data updated successfully!";

    if($name_input == $name) {

    $points = points + 3;

    $upate_data = mysqli_query($con, "UPDATE users SET points='$points' WHERE id='4'");

    }
}

?>
//输入
//PHP代码

您应该会收到未定义的索引通知。而且
href
不适用于POST数组,因此您的代码在多个级别上失败,至于
$user
@Fred-ii的来源,数据库已正确连接到页面,我可以使用$user获取其他值,我删除了href,但它仍然不起作用。错误消息是什么?请参阅设置为捕获和显示,并在查询中使用
mysqli\u error($con)