我是新的,但我正在努力解决这个问题。
我必须对sql server重复这种查询。我的问题是当我从html调用php时,getjason函数或任何其他方法返回任何数据。
php
<?php
function getArraySQL()
{
$dsn = "prueba";
$connect = odbc_connect( $dsn, '', '' );
$query = " SELECT hist_statusevents.reason, Sum(hist_statusevents.duration/3600) AS 'Duracion'
FROM hist_statusevents, hist_eqmtlist, hist_exproot
WHERE hist_exproot.shiftindex = hist_statusevents.shiftindex AND hist_statusevents.shiftindex = hist_eqmtlist.shiftindex AND hist_statusevents.eqmt = hist_eqmtlist.eqmtid AND (hist_eqmtlist.eqmtid='SVEDALA') AND hist_statusevents.category In ('2')
GROUP BY hist_statusevents.reason
ORDER BY Duracion DESC";
if(!$rs = odbc_exec($connect, $query)) die();
$rawdata = array();
$i=0;
while($row = odbc_fetch_array($rs))
{
$rawdata[$i] = $row;
$i++;
}
odbc_close( $connect );
return $rawdata;
}
@$myarray =getArraySQL($query);
echo json_encode($myarray);
HTML和getJson
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<link rel="stylesheet" href="">
<script type='text/javascript' src='js/jquery.js'></script>
<title></title>
</head>
<body>
<script>
$(document).ready(function() {
$.getJSON('php.php', function(data) {
$.each(data, function(key, val) {
$('ul').append('<li Reason="' + reason + '">' + Duration + '</li>');
});
});
});
</script>
<ul></ul>
</body>
</html>
</head>
<body>
</body>
</html>
答案 0 :(得分:2)
你有错误的变量名(Duration!= Duracion),你需要将val作为一个对象来从中获取数据。
将您的JavaScript代码更改为
$.each(data, function (key, val) {
$('ul').append('<li Reason="' + val.reason + '">' + val.Duracion + '</li>');
});
同时更改
@$myarray = getArraySQL($query);
到
$myarray = getArraySQL();
答案 1 :(得分:1)
解,
在循环时使用reason
val.reason
在php.php
中,您使用getArraySQL
作为参数调用$query
方法,但函数getArraySQL
定义不接受任何参数并自行构建一些查询。
此外,您通过在@
$myarray =getArraySQL($query);
来弥补错误
要研究的事情,
php.php
没有意义。它永远不会,它永远不会。