2013-03-28 79 views
0

我正在使用以下查询来获取有关学生的信息,他们设置的目标,连接的标准以及他们当前的标准。PHP - 查询在本地但在服务器上不起作用

每个标准可以有多个等级,我想要最近的一个,所以我添加了一个子查询来获得最近的日期。

当我在XAMPP中测试它时,该代码运行良好,但未加载到我的服务器上。数据库是相同的,我不知道还有什么可能是问题。

SELECT users.firstName, goals.goalgrade, 
standards.standard, goals.why, grades.grade         
FROM users 
    LEFT JOIN goals ON goals.userid = users.id 
    LEFT JOIN standards ON standards.id = goals.mid 
    LEFT JOIN grades ON grades.testId = standards.standard 
     AND grades.userId = users.id 
     AND grades.date = (SELECT date FROM grades ORDER BY date DESC LIMIT 1) 
WHERE users.teacherId = :teacherId 
AND users.block = :block 
ORDER BY $sortall 
+2

你有什么错误? – MichaelRushton

+0

肯定会有不同的东西。你有什么调查?你能够获得MySQL连接吗?你有不同版本的PHP或MySQL吗?你有不同的PHP扩展配置(即PDO或mysqli)吗? –

+0

是的,我正在连接,所有其他查询都正常工作。我没有收到错误,查询只是返回空。确切的代码在当地运行良好。相同版本的PHP和MySQL。至于扩展,我所有的查询都是PDO。 – RyanY

回答

0

可能的错误的:

的用户名,服务器,本地主机上使用的密码和/或数据库是不一样的,你现在正在使用您的服务器上!

你需要确保你已经创建了相同的用户名,密码,数据库,表,字段等..

+0

对不起,没有声明,我已连接,所有其他查询加载正常。我在godaddy上托管它的价值。 – RyanY

0

我解决了问题,想我会分享。与XAMPP子查询是罚款日期由本身,而是服务器需要我补充我改变了表名:

grades.date = (SELECT date FROM grades ORDER BY date DESC LIMIT 1) 

要:

AND grades.date = (SELECT grades.date FROM grades ORDER BY grades.date DESC LIMIT 1) 

我的服务器说,这是运行MySQL 5.0,而XAMPP正在运行MySQL 5.1.44。不知道这是否会有所作为,但它的工作。干杯

相关问题