Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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
如何创建视图和获取数据mysql php javascript_Javascript_Php_Mysql - Fatal编程技术网

如何创建视图和获取数据mysql php javascript

如何创建视图和获取数据mysql php javascript,javascript,php,mysql,Javascript,Php,Mysql,我有一个数据库“testdatabase”,想从表“TestTable”中创建一个列为“value”的视图,然后想对之前创建的视图值中的行求和。然后将其存储在javascript数组中。我已经输入了此代码,但不知道我在哪里出错。它不显示任何东西,甚至不显示空白的消息框 <script> var data=[ <?php $connection =mysql_connect("localhost","root","") or die ("we could

我有一个数据库“testdatabase”,想从表“TestTable”中创建一个列为“value”的视图,然后想对之前创建的视图值中的行求和。然后将其存储在javascript数组中。我已经输入了此代码,但不知道我在哪里出错。它不显示任何东西,甚至不显示空白的消息框

<script>



    var data=[
    <?php


$connection =mysql_connect("localhost","root","") or die ("we couldn't connect!");

mysql_select_db("testdatabase");

$query = mysql_query("CREATE VIEW view1 AS SELECT value FROM testtable") or die(mysql_error());

mysql_fetch_array($query);

$r2 = mysql_query("SELECT SUM(value) FROM view1;") or die(mysql_error());

 while($row = mysql_fetch_array($r2))
 {
       echo $row['value'].',';
     }
     ?>];


    window.alert(data);
    </script>

var数据=[

将函数添加到返回列时,返回列的名称将发生更改。强制声明的名称“作为值”应该有效:

"SELECT SUM(value) as value FROM view1;"
完整答案:

<script>
var data=[
<?php


$connection =mysql_connect("localhost","root","") or die ("we couldn't connect!");

mysql_select_db("testdatabase");

$query = mysql_query("CREATE OR REPLACE VIEW view1 AS SELECT value FROM testtable") or die(mysql_error());

$r2 = mysql_query("SELECT SUM(value) as value FROM view1;") or die(mysql_error());

 while($row = mysql_fetch_array($r2))
 {
   echo $row['value'].',';
 }
 ?>];


window.alert(data);
</script>

var数据=[

首先,将PHP代码嵌套在JavaScript函数中是一个非常糟糕的主意。如果继续这样编写代码,将很难找到错误。如果需要JavaScript中的数据,可以输出PHP结果或使用AJAX检索值

这里有一个例子可以让事情更干净:

<?php
$connection =mysql_connect("localhost","root","") or die ("we couldn't connect!");
mysql_select_db("testdatabase");
$query = mysql_query("CREATE OR REPLACE VIEW view1 AS SELECT value FROM testtable") or die(mysql_error());
$r2 = mysql_query("SELECT SUM(value) as value FROM view1;") or die(mysql_error());
$result = mysql_fetch_array($r2); // there is only one result
?>

<script>
    var data = [ <?php echo $result['value']; ?> ];
</script>

此外,在创建视图的第一次查询之后,不需要获取数组。您没有在任何地方使用
create
的结果。

如果可以,您应该停止使用mysql函数。这些函数已被正式弃用。这些扩展已在PHP 7中删除。请学习准备好的语句,然后继续考虑到使用PDO,这真的不难。但就目前而言,我只需要通过mysql完成这项工作,但mysql易受攻击,PDO不易受攻击。为什么要使用mysql?因为我的需求文档中有mysql,所以需要通过您的文件(PHP或Javascript文件)来完成?您在
标记中嵌套了PHP代码s、 如果您的文件是javascript文件,则不会执行这些操作。请检查浏览器控制台中是否存在可能的javascript错误。返回列的名称会发生更改?该名称在文档中的何处?“默认情况下,SELECT语句检索到的列的名称将用于查看列名。”这是mysql的一部分。您请求了SUM(值)不是值。因此返回列的名称称为“SUM(value)”,但您可以提供带有“as”的别名。应删除第一个fetch_数组。查询将不会返回资源,而只返回布尔值。可能还需要添加一个检查,以确保视图已经存在,因为MySQL将抛出一个异常(如果已经存在)。我删除了额外的fetch指令,并仅使用php和e尝试代码我想这可能是原因,但不知道为什么它会显示语法错误(缺少引号等)。试试这个:
var数据=[好的,现在我试着在php上运行代码,并在页面上返回结果,但它显示了这个错误‘语法错误,意外的’$connection’(T_变量)“我想这可能是原因,但不知道为什么它会显示出来。你真的不应该像那样在JavaScript中“嵌套”PHP。从一个只使用PHP的页面开始。是的,我现在使用的是只使用PHP的页面,但错误仍然存在,“$connection”(t_变量)”,为什么它会给出这样的结果?感谢Jay的回复
CREATE VIEW `view1` AS SELECT `value` FROM `testtable`

SELECT SUM(`value`) FROM `view1`