Yii Framework Forum: Realizzare AR query - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Realizzare AR query Rate Topic: -----

#1 User is offline   sbondi 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 33
  • Joined: 07-October 10

Posted 28 October 2010 - 08:21 AM

Ciao a tutti,
sto cercando di impararead usare Yii. Ho iniziato lunedì
Ho il seguente problema:Devo realizzare la seguente query in AR
SELECT COUNT(*) as Totale FROM $tbl_name
where StartDate < 2010-02-01 AND StartDate >=2010-01-01 AND device_category_id='A'

Io ho fatto così. ho dichiarato una variabile pubblica $totale poi
Dal mio model Projects ho aggiunto la funzione searchReport1 che contiene:
$criteria1= new CDbCriteria;
$criteria1->select="device_category_id, COUNT(device_category_id) as Totale ";
$criteria1->condition= "prj_start_date < '2010-02-01' AND prj_start_date >'2010-01-01'";
$criteria1->group ="device_category_id";
$totale = Projects::model()->findAll($criteria1);
return new CActiveDataProvider(get_class($this), array(
'criteria'=>$criteria1, ));
---------------------------------------------------------
nel ProjectController ho aggiunto una funzione actionReport1 che contiene
$model=new Projects('searchReport1');
$model->unsetAttributes(); // clear any default values
if(isset($_GET['Projects']))
$model->attributes=$_GET['Projects'];
$this->render('report1',array(
'model'=>$model,
---------------------------------------------
Nella view ho creato un file Report1 che contiene
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'projects-grid',
'dataProvider'=>$model->searchReport1(),
'filter'=>$model,
'columns'=>array(


'device_category_id',
'totale',
array(
'header' => 'Totale',
'value' => 'totale',

),

Ho usato una gridview in funzione che devo poi estendere la mia query per tutti i mesi dell'anno,ma inizialmente volevo vedere se un record me lo scriveva.
Attualmente I campi device category e totale sono vuoti

Aiuto!!!!!
0

#2 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 28 October 2010 - 08:34 AM

Secondo me dovrebbe funzionare.

Cosa succede se fai
$criteria1= new CDbCriteria;
$criteria1->select="device_category_id, COUNT(device_category_id) as Totale ";
$criteria1->condition= "prj_start_date < '2010-02-01' AND prj_start_date >'2010-01-01'";
$criteria1->group ="device_category_id";
$totale = Projects::model()->findAll($criteria1);
foreach ($totale as $tot) echo $tot->totale.$tot->device_category_id;

Vedi la lista di codici, almeno?
0

#3 User is offline   sbondi 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 33
  • Joined: 07-October 10

Posted 28 October 2010 - 08:46 AM

Ciao,

ho provato come mi hai suggerito, riporto il codice:
$criteria1= new CDbCriteria;
$criteria1->select="device_category_id, COUNT(device_category_id) as Totale ";
$criteria1->condition= "prj_start_date < '2010-02-01' AND prj_start_date >'2010-01-01'";
$criteria1->group ="device_category_id";
$totale = Projects::model()->findAll($criteria1);
foreach ($totale as $tot) echo $tot->totale.$tot->device_category_id;
return new CActiveDataProvider(get_class($this), array(
'criteria'=>$criteria1, ));

ma non mi fa vedere neanche le category
mi visualizza le intestazioni dei campi e sotto no records found
Allora ho provato ad eseguire una query semplice tipo:
$criteria1= new CDbCriteria;
$criteria1->select='prj_start_date,prj_end_date,device_category_id' ;

return new CActiveDataProvider(get_class($this), array(
'criteria'=>$criteria1, ));
e riesco a vedere i campi,quindi suppongo che la query sul count non faccia il suo dovere

uggerimenti?
0

#4 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 28 October 2010 - 09:25 AM

Non e' che magari non ci sono elementi con prj_start_date < '2010-02-01' AND prj_start_date >'2010-01-01?

Prova a visualizzare la query e vedi cosa ne pensa phpmyadmin.

Puoi configurare CWebLogRoute in modo da visualizzare tutte le query.

Nel tuo config/main:

		'log'=>array(
			'class'=>'CLogRouter',
			'routes'=>array(
				array(
					'class'=>'CFileLogRoute',
					'levels'=>'error, warning',
				),
				array(
					'class'=>'CWebLogRoute',
					'levels'=>'trace',
				),
			),

		),

0

#5 User is offline   sbondi 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 33
  • Joined: 07-October 10

Posted 28 October 2010 - 09:27 AM

View Postzaccaria, on 28 October 2010 - 09:25 AM, said:

Non e' che magari non ci sono elementi con prj_start_date < '2010-02-01' AND prj_start_date >'2010-01-01?

Prova a visualizzare la query e vedi cosa ne pensa phpmyadmin.

Puoi configurare CWebLogRoute in modo da visualizzare tutte le query.

Nel tuo config/main:

		'log'=>array(
			'class'=>'CLogRouter',
			'routes'=>array(
				array(
					'class'=>'CFileLogRoute',
					'levels'=>'error, warning',
				),
				array(
					'class'=>'CWebLogRoute',
					'levels'=>'trace',
				),
			),

		),


0

#6 User is offline   sbondi 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 33
  • Joined: 07-October 10

Posted 28 October 2010 - 09:28 AM

Mi scuso... ho perso tempo io e sopratutto tu.. ti chiedo scusa Zaccaria era una cavolata..
la query era giusta era sbagliata la condition
$criteria1->condition= " prj_start_date <= '2010-12-01' AND prj_start_date >='2010-11-01' AND device_category_id='1'";

ora va...
grazie e scusa ancora
starò piu attento
0

#7 User is offline   Maurizio Domba Cerin 

  • Yii - Yesss It Is !!!
  • Yii
  • Group: Yii Dev Team
  • Posts: 4,340
  • Joined: 12-October 09
  • Location:Croatia

Posted 28 October 2010 - 12:48 PM

Addeso che hai risolto il problema... Sarebbe bello che lo stesso lo scrivessi nel forum inglese...
Find more about me.... btw. Do you know your WAN IP?
0

#8 User is offline   sbondi 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 33
  • Joined: 07-October 10

Posted 29 October 2010 - 03:01 AM

Ciao ,
ok lo riporterò pure sul forum inglese molto volentieri.
Grazie ancora ;)
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users