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

标签 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'] == '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";
?>

因此,查看这段代码我可以看到:
我进入我的页面并在提交按钮附近输入文本
在此下方我写了“您目前已进行 0 次更改。”



如果我按下提交按钮我的页面刷新,我可以看到:
提交按钮附近的文本输入
在这下面我写了“你目前已经做了 0 次更改。”



如果我这次刷新页面,我可以看到:
提交按钮附近的文本输入
在这下面我写了“你目前已经做了 1 处改变。”

所以我想问你的是:
有没有什么办法可以在正常刷新表单后直接在页面上看到更新?
我不能将“更新查询”放在“选择查询”之上,因为在进行更新之前我需要检查用户的值....
我知道我可能会使用 AJAX,但如果没有 AJAX,php 就无法做到这一点,这似乎很奇怪,而且这需要更多时间...
任何帮助将不胜感激,谢谢!

最佳答案

原因与是否使用 Ajax 无关。您增加了数据库中的 changes 值,但没有增加 PHP 变量中的值。

所以就在这一行之前:

        mysqli_query($connect, "UPDATE table SET changes=changes+1, value='$value' WHERE id = '$id'");

添加以下内容:

        $informations['changes']++;

备注

尽管您在 $value 中对引号进行了转义以避免 SQL injection ,最好准备您的语句而不是将值连接到其中。

changes 字段是数字,所以这个比较是错误的:

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

它应该没有引号:

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

将消息“太多的变化”更改为“太多的变化”,因为变化是复数。

关于PHP 从数据库中选择结果,检查它们,进行更新并打印它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34381080/

相关文章:

PHP上传和下载文件

php - 如何在 PHP 中实现服务器发送的事件?

php - 将当前日期时间插入自定义 WordPress 日期时间列

mysql - 如何实现拥有超过 64 个成员的 MySQL SET 概念?

mysql - 如何按多列而不是按值排序?

javascript - jquery.form 插件,ajaxSubmit 和收到 HTTP 302 时 Hook

javascript - 如何防止空输入?

javascript - Rails 3 javascript 表单回调未触发

php - 函数不显示表格

php - 如何组合 sql 表中的 2 列来搜索全名