这是我在stackoverflow上的第一篇文章,但我多次使用该网站,所以首先我要感谢你们,感谢你们与世界分享的所有优秀答案。 在我发布之前我使用谷歌和搜索功能,但我找不到解决我的问题的答案。
目标是创建一个谷歌堆叠图,但他们需要一个非常具体的数组格式。 在大多数情况下,我设法创建一个图形,但对于这个我不能正确获取mssql查询的输出。
我通过我的查询得到的结果如下
Name Case Count
Company A Incident 6
Company A Request 28
Company A Problem 2
Company B Incident 1
Company B Problem 15
Company C Incident 60
Company C Problem 45
Company C Request 30
Company C Change 24
我通过以下简单的SQL查询
实现了这个结果SELECT top 20
CRM_MSCRM.dbo.FilteredAccount.name,
CRM_MSCRM.dbo.FilteredIncident.casetypecodename,
count(casetypecodename) as count
FROM
CRM_MSCRM.dbo.FilteredIncident
JOIN CRM_MSCRM.dbo.FilteredAccount on CRM_MSCRM.dbo.FilteredIncident.bb_accounttocaseid = CRM_MSCRM.dbo.FilteredAccount.accountid
GROUP BY
casetypecodename, name
如果我在相关的PHP列表中用PHP回显这个,我得到以下结果:
Company A 6
Company A 28
Company A 2
Company B 1
Company B 15
等...
但我需要的是以下内容:
Company A 6, 28, 2
Company B 2, 1
我如何回应我的查询(或修改后的查询以实现我的图表所需的格式。
['Name', 'incident', 'change'],
['Company A', 10, 24, ],
['Company B', 16, 22, ],
['Company C', 28, 19, ]
这是我的PHP代码,只是一个测试页面来获取我的结果。将其插入图表不是问题,问题是图表需要的格式。
$sql="
// query goes here
";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {die( print_r( sqlsrv_errors(), true) );}
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) )
{
echo $row [name];
echo $row [tellen]; // but this doesnt work
}
?>
我如何回应结果以实现我的目标?
提前致谢
答案 0 :(得分:0)
首先,请注意您当前的代码:
{% block body %}
<div class="container">
<div class="page-header">
<h2>New Company</h2>
</div>
{{ form_start(form) }}
<div class="row">
{{ form_row(form.name) }}
<h3>Employees</h3>
<ul class="employees" data-prototype="{{ form_widget(form.employees.vars.prototype)|e('html_attr') }}">
{% for employee in form.employees %}
<li>
<div class="form-group col-sm-6">
{{ form_row(employee.firstName, {'attr':{'class': 'form-control'}}) }}
</div>
<div class="form-group col-sm-6">
{{ form_row(employee.lastName, {'attr':{'class': 'form-control'}}) }}
</div>
</li>
{% endfor %}
</ul>
<button type="submit" class="btn btn-primary">Save</button>
</div>
{{ form_end(form) }}
</div>
{% endblock %}
您显然没有配置PHP开发框来显示所有错误消息,因此您盲目编码。我建议你研究一下,直到你能看到你应该得到的两个通知:
echo $row [name];
我还建议您查看PHP语法的基础知识,实际上与受C语法启发的其他语言没有太大区别。了解string literals(并且他们与constants不同),当然还有arrays。
虽然你当然可以重写你的SQL查询以返回你需要的确切数据格式,但是当我(如果我理解正确的规范)一个简单的PHP数组将会做的时候,我不认为这是值得的。特技。
我的印象是唯一的问题是你不熟悉编程语言中数组的概念。这不是完整讲座的地方,但数组是一个值列表,其中顺序很重要,这些值可以是任何PHP变量 - 包括其他数组。最后一位是转换它的关键:
Notice: Use of undefined constant name - assumed 'name'
Notice: Undefined index: name
......进入这个:
Company A 6
Company A 28
Company A 2
Company B 1
Company B 15
当您在Company A 6, 28, 2
Company B 2, 1
循环中读取结果集时,您可以将值存储在二维数组中。您可以在PHP手册的Recursive and multi-dimensional arrays示例中查看语法,但在您的情况下,它可以是:
sqlsrv_fetch_array()
您可以使用以下方法检查生成的数组: var_dump()。完成后,您可以使用foreach()循环外部数组,并将每个内部数组合并为逗号分隔的字符串implode()。