Yii Framework Forum: Creare una query complessa con una vista tabellare - Yii Framework Forum

Jump to content

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

Creare una query complessa con una vista tabellare Rate Topic: -----

#1 User is offline   sbondi 

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

Posted 28 October 2010 - 10:26 AM

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
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 - 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:


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)'
    )
)

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