如何创建视图和获取数据mysql php javascript
我有一个数据库“testdatabase”,想从表“TestTable”中创建一个列为“value”的视图,然后想对之前创建的视图值中的行求和。然后将其存储在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
<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`