2013-01-25 184 views
2

我正在爲我正在構建的站點的詞彙表頁面工作。所以,當你點擊A鏈接時,它將拉回以A開頭的所有字母,等等。我已經完成了大部分功能,但是我無法獲得正確的sql語句來撤回我想要的功能。CodeIgniter - sql只返回第一個字母

我正在這...

$this->db->order_by("title", "asc"); 
$this->db->where('category', 'vocab'); 
$this->db->like('title', $this->uri->segment(3)); 
$data['query'] = $this->db->get('entries'); 

所以,我一直在試圖讓類似功能的工作。要將標題中的第一個字母與字母相匹配,當用戶單擊該鏈接時,我會在URL中投擲。

任何幫助?我在做類似的條款嗎?我從來沒有真的必須做一個之前。

+0

%標題會比較有用。 。 – tomexsans

+0

對不起,但我不認爲codeigniter允許在where子句中使用%符號...至少當我嘗試 – zazvorniki

回答

6

我相信你需要改變一個行:

$this->db->like('title', $this->uri->segment(3), 'after'); 

此外,請注意你得到結果的方式:$this->db->get('entries')->result();

+0

時,它會引發錯誤謝謝!那正是我需要的! :) – zazvorniki

+0

那裏我們去了,發現它!並再次感謝你幫助我!對此,我真的非常感激! – zazvorniki

+0

太好了,不客氣!如果您有時間,也歡迎登機,請閱讀FAQ的其餘部分,因爲Stack Overflow有一些非常棒的內容。 – Shomz

0

如果你想控制,其中通配符(%)放置,你可以使用可選的第三個參數。您的選項是「之前」,「之後」和「兩者」(這是默認設置)。如果你想第一個字母

$this->db->like('title', 'match', 'before'); // Produces: WHERE title LIKE '%match' 
$this->db->like('title', 'match', 'after'); // Produces: WHERE title LIKE 'match%' 
$this->db->like('title', 'match', 'both'); // Produces: WHERE title LIKE '%match%' 

You can see the codeIgniter Active Record Page