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!!!!!
Page 1 of 1
Realizzare AR query
#2
Posted 28 October 2010 - 08:34 AM
Secondo me dovrebbe funzionare.
Cosa succede se fai
Vedi la lista di codici, almeno?
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?
#3
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?
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?
#4
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:
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', ), ), ),
#5
Posted 28 October 2010 - 09:27 AM
zaccaria, 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:
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', ), ), ),
#6
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
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
#7
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?
#8
Posted 29 October 2010 - 03:01 AM
Ciao ,
ok lo riporterò pure sul forum inglese molto volentieri.
Grazie ancora
ok lo riporterò pure sul forum inglese molto volentieri.
Grazie ancora

Share this topic:
Page 1 of 1