CodeIgniter使用后退按钮的问题

时间:2013-02-12 20:09:17

标签: php mysql codeigniter jquery-mobile

我有一个Web应用程序,允许用户执行搜索,产生一组分页结果。然后,用户可以从结果中选择一个项目以查看更多信息。但是,当用户按下后退按钮时,它会从jQuery Mobile产生Error loading page错误。通过查看Chrome Inspector中的预览,这是由于1064错误(我的SQL语法中的错误)。鉴于查询在第一次执行时有效,我认为这不是真正的问题。

对CodeIgniter不太熟悉,我的猜测是,当按下后退按钮时,控制器方法没有被发送所需的值以返回有效的响应 - 因此错误。

任何人都可以帮助解决此问题,因为我希望用户能够返回搜索结果并根据需要来回分页。

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND `library`.`votes` >= '1000'AND `library`.`language` != 'German'AND `ro' at line 5

SELECT *FROM (`library`)JOIN `classifications` ON `library`.`id` = `classifications`.`id`WHERE `library`.`rating` >=AND `library`.`votes` >= '1000'AND `library`.`language` != 'German'AND `classifications`.`meter` >ORDER BY `library`.`rating` DESC

Filename: /Applications/MAMP/htdocs/libraryTest/models/results_model.php

Line Number: 53

修改

如上所述,问题似乎是,当按下后退按钮时,控制器方法不接受任何参数,以致它尝试执行以下没有值的查询:

SELECT *FROM (`library`)JOIN `classifications` ON `library`.`id` = `classifications`.`id`WHERE `library`.`rating` >=AND `library`.`votes` >= '1000'AND `library`.`language` != 'German'AND `classifications`.`meter` >ORDER BY `library`.`rating` DESC

您可以看到library.ratingclassifications.meter的值不存在。但是我想重申一下,当首次调用控制器方法时,这些值会出现在初始查询中。导航回页面时会发生此错误。

上面第53行对应于模型方法中SQL查询的执行:

return $sql_query->get()->result();

1 个答案:

答案 0 :(得分:0)

'AND `library`.`votes` >= '1000'AND `library`.`language` != 'German'AND `ro'

在该行的末尾,您有AND 'ro'

检查你的语法。从哪里来的?这是一个错误的条件。 它应该是这样的:

AND language != ro

请在此处粘贴第53行!因为有问题。