Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.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/8/mysql/72.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
PHP从数据库中选择结果,检查它们,进行更新并打印它们_Php_Mysql_Ajax - Fatal编程技术网

PHP从数据库中选择结果,检查它们,进行更新并打印它们

PHP从数据库中选择结果,检查它们,进行更新并打印它们,php,mysql,ajax,Php,Mysql,Ajax,我给你举了一个我的问题的简化例子,然后试着解释一下: <?php $connect = mysqli_connect($link, $user, $pw, $db); $informations = mysqli_fetch_array(mysqli_query($connect, "SELECT * FROM table WHERE id = '$id' ")); if($_POST['submit']){ if($informations['show'] == 't

我给你举了一个我的问题的简化例子,然后试着解释一下:

    <?php
$connect = mysqli_connect($link, $user, $pw, $db);

$informations = mysqli_fetch_array(mysqli_query($connect, "SELECT * FROM table WHERE id = '$id' "));

if($_POST['submit']){
    if($informations['show'] == 'true'){
        if($informations['changes'] <= '100'){
            $value = mysqli_real_escape_string($connect, $_POST['value']);
            mysqli_query($connect, "UPDATE table SET changes=changes+1, value='$value' WHERE id = '$id'");
        }else{
            echo "You made too much changes.";
        }
    }else{
        echo "You cannot change this.";
    }
}
if($informations['show'] == 'true'){
    echo "<form action='' method='post'>";
    echo "<input type='text' name='value' /><input type='submit' name='submit' value='Update' />";
    echo "</form>";
}
echo "<br/>You currently have made ".$informations['changes']." changes";
?>

原因与是否使用Ajax无关。您增加的是数据库中的更改值,而不是PHP变量中的更改值

就在这一行之前:

        mysqli_query($connect, "UPDATE table SET changes=changes+1, value='$value' WHERE id = '$id'");
添加以下内容:

        $informations['changes']++;
备注

虽然您在
$value
中使用了转义引号来避免,但最好准备语句,而不是将值串联到语句中

字段变化是数字的,因此此比较是错误的:

if($informations['changes'] <= '100'){

if($informations['changes']原因与是否使用Ajax无关。您正在增加数据库中的更改值,而不是PHP变量中的更改值

就在这一行之前:

        mysqli_query($connect, "UPDATE table SET changes=changes+1, value='$value' WHERE id = '$id'");
添加以下内容:

        $informations['changes']++;
备注

虽然您在
$value
中使用了转义引号来避免,但最好准备语句,而不是将值串联到语句中

字段变化是数字的,因此此比较是错误的:

if($informations['changes'] <= '100'){

if($informations['changes']首先,感谢您的回答:)所以每次我需要执行更新查询时,我都必须这样做?例如:mysqli_query($connect,“update table SET changes=changes+1,value='$value',value2='$value2',value3='$value3',其中id='$id');$informations['changes'++;$informations['value']=$value;$informations['value2']=$value2;$informations['value3']=$value3;我说得对吗?是的,如果您需要所有这些信息。如果是这样,您可能希望在更新后立即重新执行select语句:
$informations=mysqli_fetch_数组(mysqli_查询($connect,“select*FROM table WHERE id='$id'));
。但是您只需要输出正确数量的更改,而
++
行是一个更快的解决方案。首先,感谢您的回答:)所以每次我需要执行更新查询时,我都必须这样做?例如:mysqli_查询($connect,“更新表集changes=changes+1,value='$value',value2='$value2',value3='$value3',其中id='$id')$信息['changes']++$信息['value']=$value$信息['value2']=$value2$信息['value3']=$value3;我说的对吗?是的,如果你需要这些信息。如果是这样,您可能希望在更新之后立即重新执行select语句:
$informations=mysqli_fetch_数组(mysqli_query($connect,“select*FROM table WHERE id='$id')。但是您只需要输出正确数量的更改,而
++
行是一个更快的解决方案。