2013-08-24 91 views
0

我一直在这里呆了一天,我希望有一组不同的眼睛可以告诉我我要出错的地方。PHP MySQL - 查询中的字符串var不返回结果

我们正在使用MySQL存档呼叫中心的日常报告,并且我有一个页面让人们可以根据主管和日期来搜索他们。当他们执行搜索时,两个不可见文本框会检索搜索条件,当它们点击“导出”时,这些值将被传递到运行PHPEXCEL的导出页面以打印结果。

它工作正常,但我们最近将它拼凑到一个PHPBB页面,出于某种原因,它无法正确读取管理员名称字符串。因此,搜索页面工作正常,以下所有代码/信息都与“导出”页面相关。

echo $supervisorName; #returns John Smith 

相呼应的是,出口页面上打破了Excel文件PHPExcel吐出来,这是有道理的,但它确实表明变量被保存和正确。

$sql = "Select 
newTeam, First, Last, `Calls Handled`, `Avg AHT`, ... 
From 
phpbb_reportarchive inner join employees on phpbb_reportachive.phonenum = employees.phonenum 
where 
employees.newteam = '{$supervisorName}' and phpbb_reportarchive.Date = '{$incidentDate}' 
order by last"; 

当我在字符串中包含的上司的名字,不过,PHPExcel吐出了一个空的结果 - 没有粘贴行。但是,如果我删除变量$ supervisorName并将其替换为'John Smith',它将返回预期结果,并且PHPExcel会给我我想要的结果。

我很感激任何帮助。如果我能提供更多信息来澄清我的任何事情。有没有人看到我可能做错了什么?

+0

为什么$ supervisorName在大括号中? – Reflic

+0

您是否在分配'$ sql'之前将'echo $ supervisorName'直接打印了正确的值? 'echo $ sql'并确保生成正确的查询。 – ChicagoRedSox

+0

Reflix - 我的理解是大括号是可选的 - 我尝试删除它们,但没有做出改变。芝加哥 - 它看起来像是在主管名字前插入一个换行符,不知道为什么 - 但是感谢这个伟大的建议,没有想过echo sql。我将尝试分离出来 – Acantud

回答

0

由于某种原因,$ supervisorName被拖动了一堆尾随的空格和换行符。我用修剪来清理它,它的工作完美。谢谢你们,我会一整天都在。