Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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、javascript和mysql实时数据问题_Php_Javascript_Mysql - Fatal编程技术网

php、javascript和mysql实时数据问题

php、javascript和mysql实时数据问题,php,javascript,mysql,Php,Javascript,Mysql,我对网络编程非常陌生,但我有一些数据,我真的很想在我的网站上不断更新的时间序列图中展示。 因此,我一直在尝试设计一些代码原型,这些代码将显示添加到数据库中的最新整数值。 我要引用的数据库表不断插入整数值。 我的问题是,; 我正在尝试使用JavaScript和php的组合,在按下网站上的按钮时显示数据库中的最新条目。 但是,我能得到的唯一整数是最初加载页面时数据库中存在的最后一个整数。 我用来从数据库中获取数据的php函数似乎在页面加载后立即运行,并且在每次按下按钮后不会更新。这是php的局限还是

我对网络编程非常陌生,但我有一些数据,我真的很想在我的网站上不断更新的时间序列图中展示。 因此,我一直在尝试设计一些代码原型,这些代码将显示添加到数据库中的最新整数值。 我要引用的数据库表不断插入整数值。 我的问题是,; 我正在尝试使用JavaScript和php的组合,在按下网站上的按钮时显示数据库中的最新条目。 但是,我能得到的唯一整数是最初加载页面时数据库中存在的最后一个整数。 我用来从数据库中获取数据的php函数似乎在页面加载后立即运行,并且在每次按下按钮后不会更新。这是php的局限还是我的php知识的局限。任何帮助都将不胜感激

php函数

function getData()
{ 包括config.php

  $db = mysql_connect($dbhost,$uname,$pass);
  mysql_select_db ($dbname) or die ("Cannot connect");

  $query = "SELECT numCalls FROM $tname ORDER by claatime DESC LIMIT 1";
  $result = mysql_query($query);

  while($r=mysql_fetch_array($result))
  {
     $numCalls = $r["numCalls"];
  }
  return $numCalls;
}

javascript函数

  function getNum()
  {
     var x = <?php echo getData()?>;
     alert('the latest number is ' +x);
  }

这是因为PHP只处理一次页面,这是第一次请求页面

为了解决这个问题,将getData函数的主体放在一个与我们称之为getData.php的页面不同的文件中。然后使用JavaScript库发出Ajax请求,使其变得简单

因此,假设您加载了jQuery,那么您的部分应该如下所示:

function getNum() {
    $.ajax({
        url: "getData.php",
        complete: function(response) {
            alert("The latest number is " + response.responseText);
        }
    });
}
您的getData.php应该如下所示:

<?php
include "/home/store/config3.php";

$db = mysql_connect($dbhost,$uname,$pass);
mysql_select_db ($dbname) or die ("Cannot connect to database");


$query = "SELECT numCalls FROM $tname ORDER BY calltime DESC LIMIT 1";
$result = mysql_query($query);

while($r=mysql_fetch_array($result))
{                                                                                                                                                         
    $numCalls = $r["numCalls"];
}

header("Content-Type: text/plain");
print $numCalls;
?>
要加载jQuery,只需添加

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

在元素的页面顶部。

我没有看到任何重新启动连接的内容


虽然第二种模式不太为人所知,但浏览器和网站使用单一的客户机-服务器模式;客户端收到回复,一切都停止了……除非它重新启动连接。

您似乎不了解web技术的基本工作原理

只是一个很短的速成课程:

浏览器向Web服务器发送请求 Web服务器运行PHP脚本 无论脚本的输出是什么,都会被发送回浏览器,这包括javascript代码 现在浏览器显示页面并执行javascript
如您所见,要更新整数,您需要向webserver发出新请求。为此,您可能需要研究Ajax和XMLHttpRequest。有足够的脚本和文档可以向您展示如何完成这项工作。我认为你不应该仅仅为了这个目的而包括一个框架

我遵循了你写的,现在一切都正常了,显然我需要填补一些关于网络编程的知识空白,但这帮助我理解了更多,非常感谢:没问题。PHP和jQuery都很容易使用,所以不需要太长时间就可以跟上速度。我建议您阅读W3C教程,其中有一些关于PHP、SQL、Ajax、jQuery等的简单易懂的教程。对,我已经读了一些关于jQuery和$的内容。Ajax调用是一种低级方法,它的优点之一是防止浏览器缓存来自服务器的响应。如果服务器动态生成其数据,这可能很有用。这正是从数据库中为网站上的实时图形提供实时数据所需要的。但是,我很难让jQuery函数返回一个整数值,而不是警报框。我希望jQuery函数将从数据库中获取的整数返回给调用函数。我尝试添加一个return语句,但它似乎返回某种对象请求,不是我期望的整数。对不起,错误地按了回车键:-p1在complete:functionresponse中执行任何您想执行的操作。。。。节和2在调用函数中有一个变量,并将response.responseText分配给该变量。