2013-02-12 109 views
0

我有一個Web應用程序,它允許用戶執行搜索產生一組分頁結果。用戶然後可以從結果中選擇一個項目來查看更多信息。但是,當用戶按下後退按鈕時,它會從jQuery Mobile中產生一個Error loading page錯誤。從查看Chrome Inspector中的預覽,這是由於1064錯誤(我的SQL語法中有錯誤)。鑑於查詢工作時首次執行我認爲這不是真的問題。CodeIgniter問題與使用後退按鈕

對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 

EDIT

的問題似乎是,因爲我上面所說的,該控制器的方法不接受任何參數時的返回按鈕是按壓,使得其嘗試與執行以下查詢無值:

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();

+0

代碼會有幫助 – user20232359723568423357842364 2013-02-12 20:14:36

+0

代碼已被添加 - 正如我所說,當值實際傳遞給控制器​​時,查詢成功執行 – garethdn 2013-02-12 20:22:29

回答

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

在該行必須結束:AND 'ro'

檢查語法。那是從哪裏來的?這是一個錯誤的情況。 它應該是這樣的:

AND language != ro 

,請複製粘貼此行號53!因爲有問題。