在数据库更新

时间:2017-08-17 06:04:25

标签: php jquery mysql ajax

这里有另一个初学者问题:/ ...

我有一个MySQL数据库和一个包含一些PHP文件的Web应用程序,比如page1.php和page2.php。

当用户在page1.php上时,我需要在我的数据库获得特定更新时自动将其重定向到page2.php。让表" foo"是:

-------------------
| ID | NAME | AGE |
-------------------
| 1  | Bob  | 32  |
-------------------
| 2  | Ken  | 28  |
-------------------

如果数据库已更新且Ken的年龄变为30岁,我希望page1.php上的用户在page2.php上重定向。

我知道这可以通过一些AJAX来实现,通过使用setInterval()方法不断调用php文件,但我找不到任何可以处理重定向功能的东西。到目前为止我发现的所有脚本都会更新HTML页面中的div容器,如:

<script>
setInterval(
(function () {
$("#somediv").load("file.php");
}), 10000);
</script>
<div id="somediv"></div>

显然无法帮助我重定向用户。我已经在这几个小时了,相信我们,我做了很多研究。那么编写一个自动查找要插入MySQL数据库的指定数据的脚本的最佳方法是什么,然后将用户从page1.php重定向到page2.php?

提前致谢:)

2 个答案:

答案 0 :(得分:2)

您对AJAX调用有正确的想法,但不是使用$.load(),而是使用类似$.get()的内容:

<script type="text/javascript">
    function check_db() {
        $.get( 'file.php', function( result ) {
            if ( result == 'changed' ) {
                location.href = 'page2.php';
            }

            setTimeout( 'check_db', 10000 );
        } );
    }

    check_db();
</script>

然后输出file.php&#34;更改&#34;如果数据库发生变化,您正在寻找。

上述JavaScript将每隔10秒调用file.php,这将检查数据库更改。如果它发生了,那么它将输出&#34;更改&#34;,location.href方法将使用JS将您重定向到page2.php

@ vher2对file.php提出了一个很好的观点,可能需要很长时间才能返回。我已经修改了示例以将其考虑在内。因此,不是每隔10秒调用一次,而是在一次调用结束和下一次调用开始之间的10秒内运行。

答案 1 :(得分:0)

你可以简单地让你的SQL做你的事情,检查sql是否更新了表,然后再做一个标题位置,如下所示:

$query = $DB->query("UPDATE something SET age = '$30' WHERE member_id = '$member_id'");

if($query) {
 header('Location: page2.php');
}