2011-04-11 10 views
0

は私がいることを使用私はcodeigniterフレームワークPHPを使用してMySQLデータベースからフェッチしたいですか?

SELECT `id`, `name`, `visits`, `shortdes`, `photo` FROM `products` 
     WHERE `name` LIKE '$word' 
     OR `shortdes` LIKE '$word' ANd `valid` = 1 ORDER BY `id` DESC 

モデルによるものを取得したいが、それは私が何を使用することができます

$this->db->order_by('id', 'desc'); 
$this->db->like('name', $word); 
$this->db->or_like('shortdes', $word); 
$this->db->where('valid', 1); 
$this->db->select('id, name, visits, shortdes, photo'); 
$query = $this->db->get('products'); 

falseが返さ?

+0

はあなたのセットアップconfigフォルダ内database.phpでファイルを持っているが?これは、資格情報を使用してデータベースを指す必要があります。 WHERE、SELECT、LIKEなどのメソッドを削除した場合、 '$ query = $ this-> db-> get( 'products');'これは機能しますか? – Chris

+0

ええ、それは私に結果を与えますが、私は望みません。 – Buffon

答えて

0

codeigniterのクエリービルダークエリーをデバッグするために、私は通常、このようなことをしてデバッグし、どのようなクエリーが生成されているのかを正確に確認することを推奨します。

$this->db->order_by('id', 'desc'); 
$this->db->like('name', $word); 
$this->db->or_like('shortdes', $word); 
$this->db->where('valid', 1); 
$this->db->select('id, name, visits, shortdes, photo'); 
$query = $this->db->get('products'); 

echo "<pre>" 
die(print_r($this->db->last_query(), TRUE)); 

これを実行すると、実際に生成された未処理のSQLクエリが出力され、そこからデバッグできます。

+0

それは私に 'SELECT' id'、 'name'、' visits'、 'shortdes'、' photo'を与えます。 FROM( 'products') WHERE'有効数字= 1 AND 'name' LIKE '%%' OR' shortdes' LIKE '%%' ORDER BY 'id' desc ' – Buffon

+0

' $ word'のように見えますが、何もないので結果が得られません一致する...まあ...何もない – jondavidjohn

+0

ありがとう – Buffon

0

あなたは...あなたのアクティブなレコードを使用すると、通常のSQLクエリを注文するのと同じ方法を問い合わせ

を注文する必要があります

WHERE

ORDER_BY

ます$ this-> DB-> GETを選択(バツ); - これはFROMと同じです。

IE:

<?php 
$this->db->select('id, name, visits, shortdes, photo'); 
$this->db->where('valid', 1); 
$this->db->like('name', $word); 
$this->db->or_like('shortdes', $word); 
$this->db->order_by('id', 'DESC'); 
$query = $this->db->get('products'); 
if ($query->num_rows() > 0) 
{ 
    $row = $query->row(); 

    echo $row->id; 
    echo $row->name; 
    echo $row->visits; 
    etcetc... 
} 

またはその代わりに、あなただけの完全なクエリを使用することができ、アクティブレコードを使用。

$query = $this->db->simple_query('YOUR QUERY HERE'); 

以上のドキュメントについては、以下のユーザーガイドページを使用します。

アクティブレコード: http://codeigniter.com/user_guide/database/active_record.html

クエリ結果: http://codeigniter.com/user_guide/database/results.html

関連する問題