Ciao a tutti,
sono di nuovo qui a chiedere suggerimenti
Con Yii e AR è possibile realizzare il seguente statement che realizzerei in SQL?
for ($contatore=0; $contatore < $lungh_array; $contatore++) {
//echo "$nome[$contatore]";
echo " <tr><td bgcolor=C0C0C0 ALIGN=center>$nome[$contatore]</td>";
//query
$ris = mysql_query ("SELECT COUNT(*) as Totale FROM $tbl_name
where StartDate < '$Febbraio' AND StartDate >='$Gennaio' AND class='$nome[$contatore]' ;");
if (!$ris)
{
echo "
<tr><td bgcolor=C0C0C0 ALIGN=center>$nome[$contatore]</td> <td ALIGN=center>0</td></td> <td ALIGN=center>0</td>
<td ALIGN=center>0</td><td ALIGN=center>0</td><td ALIGN=center>0</td></tr> ";
}
$riga2 = mysql_result($ris,0) ;
echo "<td ALIGN=center>$riga2</td></td> ";
//fine query
-----------------------
dove ho già la query base in AR
$criteria1= new CDbCriteria;
$criteria1->select="device_category_id, COUNT( device_category_id) as totale ";
$criteria1->condition= " prj_start_date <= '2010-12-01' AND prj_start_date >='2010-11-01' AND device_category_id='1'";
$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 devo implementarlo ciclando su un array category contenente(0,1,2,3....)
Alla fine devo realizzare una vista a forma di tabella con colonne category Gennaio Febbraio.... in cui ogni riga sia il nome della category e ogni mese contenga il count del mese
Volendo posso allegare putput finale realizzato in php standard!
Spero di essere stato chiaro e grazie fin d'ora per i suggerimenti
Page 1 of 1
Creare una query complessa con una vista tabellare
#2
Posted 28 October 2010 - 03:13 PM
E' molto difficile scrivere una query per ottenere tutti i dati in un colpo solo, quello che ti consiglio è di fare una prima query per trovare le varie class.
Poi puoi scrivere una funzione nel model per trovare il totale di un certo mese:
Questa funzione la puoi chiamare sul model, per cui puoi configurare la CGridView così:
Poi puoi scrivere una funzione nel model per trovare il totale di un certo mese:
public function getTotaleMese($mese)
{
$criteria= new CDbCriteria;
$criteria->condition= " prj_start_date <= '$meseSucc' AND prj_start_date >='$mese' AND device_category_id='{$this->device_category_id}'";
return ClassName::model()->count($criteria);
}
Questa funzione la puoi chiamare sul model, per cui puoi configurare la CGridView così:
'columns'=>array(
'device_category_id'
array(
'header'=>'Gennaio',
'data'=>'$data->getTotaleMese(2010-01-01)'
)
)
Share this topic:
Page 1 of 1

Help












