Query di Yii

Halo Para Mater…

minta pencerahanya dong

saya terbiasa dengan select * from table where blabla=$blabla

saya baru newbe…sangat tertarik sama yii kayaknya TOP nih framework. :)

cuman disini langsung bingung.dengan penggunaan model,view, dan controler nya

di sini ketemunya findbykey(), findall() dsb

yang saya tanyain:

  1. contoh penggunaan find() untuk meng query ke database yang mempunyai kriteria variable dari form dan terelasi dengan beberapa table

  2. bagaimana contoh membaca hasilnya ke view.

terimakasih sebelumnya para master sudi memberikan pencerahanya…

::) :rolleyes:

just share, kalo terbiasa dengan query and view (free style coding) mendingan sih belajar mvc dulu.

sama seperti nasehat agan Firmansyah. setuju gan ane.

bisa diliat disini method dan return value dari CactiveRecord disini

kalo fungsi2 seperti find(),findByPk(),findByAttributes() data dapat ditampilkan dengan $model->data soalnya return valuenya object

kalo findAll(),findAllByAttributes() returnnya array,datanya dapat diakses dengan foreach sama seperti kita query lewat DAO

kalo criteria tinggal dibuat aja trus ditaro di method tersebut,contoh…




$criteria = new CDbCriteria;

$criteria->compare('user','boby',true);

$model=new User;

$model->findAll($criteria);



ebih lengkapnya liat di link diatas

makasih bang ressaince , atas pencerahanya, tapi bagaimana jika select menggunakan relasi dua tabel bagaimana?

tengkyu

tengkyu mas broo…

rada cerah nih :) :) :)

hmm… kalo itu saya ga tau bisa make method findAll($criteria) ato ga,belum pernah nyoba,

saya pernahnya gini gan…




$command=Yii::app()->db->createCommand();

	$command->select('b.product_number,b.product_desc,count(b.cust_loc_id) as qty,d.site,e.nama');

	$command->from('pd_productDelivery a');

	$command->join('pd_productDelivery_detail b','a.id = b.productDelivery_id');

	$command->join('pd_customer_location d','b.cust_loc_id = d.id');

	$command->join('pd_customer e','a.customer_id = e.id');

	$command->where('a.category =:param',array(':param'=>"Populasi"));

	$command->group('b.cust_loc_id,b.product_number,a.customer_id');

	//print_r($command);

	//die();

	$first=$command->queryAll();



enakan emang pake yii DAO kalo sql yang ribet2




public function suggestTags($keyword,$limit=20)

	{

		$tags=$this->findAll(array(

			'condition'=>'name LIKE :keyword',

			'order'=>'frequency DESC, Name',

			'limit'=>$limit,

			'params'=>array(

				':keyword'=>'%'.strtr($keyword,array('%'=>'\%', '_'=>'\_', '\\'=>'\\\\')).'%',

			),

		));

		$names=array();

		foreach($tags as $tag)

			$names[]=$tag->name;

		return $names;

	}



itu ada di Contoh demo/blog/protected/models/Tag.php

Ane jelaskan dikit sesuai dengan kemampuan Ane




$tags=$this->findAll(array(

			'condition'=>'name LIKE :keyword',

			'order'=>'frequency DESC, Name',

			'limit'=>$limit,

			'params'=>array(

				':keyword'=>'%'.strtr($keyword,array('%'=>'\%', '_'=>'\_', '\\'=>'\\\\')).'%',

			),

		));



‘condition’=> ini digunakan sebagai kata ganti WHERE kalo pada saat Query biasa

‘order’=> Ini digunakan untuk ORDER BY saat query biasa

‘limit’=> digunakan untuk limit biasa saat query biasa

‘params’=> karena saat condition menggunakan LIKE :keyword, maka nilai :keyword digunakan sebagai kunci pencarian/… semoga membantu sebagai sesama Newbei,

Maklum Ane baru 1 bulan ini Belajae YII

wah mantef juga nih mas bro walau baru sebulan,mau tanya dikit buat mastiin aja




'condition'=>'name LIKE :keyword',



name tadi field ya gan…pasti bukan nama tabel

kemudian relasi antar tabel nya dimana gan…??

kalo di baca kan itu baru kondisi nya saja…

tengkyu

si ahmadroni ga ngerelasiin…

untuk ngerelasiin pake join…

seperti contoh saya

yup betul mabro…

kalo boleh tau gimana cara agan di atas pake cara many_many dsb gitu bisa nggak

maap ya mabro Newbie nih

kalo relations MANY_MANY, agak2 bingung gw juga mas bro…

kalo HAS_MANY sama BELONG_TO itu baru gampang …

lagi ga dileptop neh ga bisa kasi contoh code,tapi udah banyak kok diforum ini,searching aja dulu gan

Oh ya … Betul Bro… Ane buat contoh untuk satu tabel… he…he…