como saber si un dato esta en la base de datos?

tengo este código en el actionCreate() donde estoy mandando para 3 tablas diferentes:




public function actionCreate()

	{

      

		$model=new InformeRecepcion();

       		 // Uncomment the following line if AJAX validation is needed

		// $this->performAjaxValidation($model);


		if(isset($_POST['InformeRecepcion']))

		{			

			$model->attributes=$_POST['InformeRecepcion'];

            $model->fecha_entrada=$_POST['fecha_entrada'];

            

            $cont=$_POST['cont'];

            $arrayProduct=array($cont);           

            for ($i=0;$i<$cont;$i++)

            {

           		$arrayProduct[$i]=new Producto();

           		

            	$attributeNames=$arrayProduct[$i]->attributeNames();

            		foreach($attributeNames as $value)

            		{

            			$asi=$i+1;

            			$key=$value;

            			//+ (string)($asi)

            			$key=$key.(string)($asi);

            			//print($key);

            			if (array_key_exists($key,$_POST)){

            				$arrayProduct[$i]->__set($value,$_POST[$key]);

            			//print($arrayProduct[$i]->__get($value));print( '//');

            			};

            		}

            		//if ($modelP->save()){

            			//print('create//');

            		//}

            }


            $model->listaProductos=$arrayProduct;

            

            if($model->save()){

            	

               $this->redirect(array('view','id'=>$model->id_informe));}

				

		}	

			$this->render('create',array(

			'model'=>$model,	

		    ));

		

	}



este otro código es el método save() que adapté en la model que está procesando los datos a enviar




public function save(){

		//print('create//');

		

		if (parent::save()){

			foreach ($this->listaProductos as $producto){ 

				if ($producto->search()!=null)

				{

					$criteria=new CDbCriteria;

					$criteria->compare('campo_BD',$producto->attr1);

					$criteria->compare('campo_BD',$producto->attr2);

					$dataProvider= new CActiveDataProvider('Producto//nombre_modelo', array(

						'criteria'=>$criteria,						

					));

					$modelArray = $dataProvider->getData(true);

					$total = $dataProvider->totalItemCount;

					

					/*

					$dat = array();

					foreach ($modelArray as $value)

					{

						$modelAttrs = $value->attributes;								

						$dat[$i] = $modelAttrs; //aqui se adciona en cada posiscion del array el objeto (tupla resultante de la consulta)

						$i++;

					}

					echo json_encode(array('datos'=>$dat,'total'=>$total));

					*/

				}

					

				if ( $producto->save()){

					$informeRP=new InformeRecepcionProducto();

					$informeRP->__set('id_informe',$this->__get('id_informe'));

					$informeRP->__set('id_producto',$producto->__get('id_producto'));

					if ($informeRP->save());

						//die('id_producto');

				}

			}

			return true;

		}else 

		return false;

	} 



pero tengo que comparar algunos de los datos que recibo por Post[] con los que ya existen en una de las tablas y no se como hacerlo, por favor, alguien pudiera ayudarme?

me parece q vas a tener q leer los datos desde la BD y compararlos, si satisfacen tus condiciones insertar los nuevos datos en la BD sino mandar msg de error. algo asi. Aclaro q soy NewBie en Yii y bastante con php. Vengo desde JAVA. saludos<br />

P/D: CAMBIALE EL NOMBRE A TU MENSAJE &quot;como saber si un dato esta en la BD&quot; por q la verdad de solo verlo parece una pregunta MUY estupida, aunque al entrar a leer el post entero no es asi. Yo entré para contestarte: &quot; si miras en la bd y los datos estan es porq estan sino no estan&quot; jajaja<br />

saludos

Puedes usar NombreModelo::model()->findByAttributes();

Acá la documentación: http://www.yiiframework.com/doc/api/1.1/CActiveRecord#findByAttributes-detail

Saludos.