Domanda

sono nuovo a yii.Il mio problema è, ho un array $hometeamid che contiene tutto l'id che ho bisogno di visualizzare i dettagli.Come posso ottenere i dati.Plz qualcuno mi aiuta a farlo Ho provato
$mod = Yii::app()->db->createCommand('SELECT * FROM event WHERE id = 1432201 or id = 1432208')->queryAll();

 $no=1432201;
 $mod = Event::model()->findByAttributes(array('id' => $no));<br>
.

ma non funziona.I campi vuoti stanno mostrando.

È stato utile?

Soluzione

I migliori da fare addincrediteria wiith cdbcriteria o semplice createcommand come, ma prima di farlo controlla la tua query su PhpMyAdmin / Navica / MySQL Workbench, ecc. Manualmente (è il risultato di ritorno o meno?)

$homeTeamIds=['1','2','3','4'];
$criteria = new CDbCriteria;
$criteria->addInCondition('id',$homeTeamIds,'OR'); //matching any of your homeTeadIds 
$result = Event::model()->findAll($criteria);
.

o

$ids = implode(', ', $homeTeamIds);
$sql = "SELECT * FROM event WHERE id IN ($ids)"   // like where id IN(1,2,3,4)
$result = Yii::app()->db->createCommand($sql)->queryAll();
.

Altri suggerimenti

DONT UTILIZZARE CHEADBATIBUTE se si imposta l'ID come chiave primaria nel DB.

Esempio:

$mod = Event::model()->findbyPk($no);
.

È possibile utilizzare cdbcriteria s addincondition () metodo per trovare tutte le righe con valori che corrispondono agli elementi in un array, ad esempio qualcosa del generedovrebbe funzionare (non testato):

$hometeamid = array(
    '1432201',
    '1432208',
    // ... etc... all the id's you want to show
);
$criteria = new CDbCriteria;
$criteria->addInCondition('id',$hometeamid,'OR');
$mod = Event::model()->findAll($criteria);
.

C'è persino un esempio utilizzando l'addincondition nella parte superiore della pagina di riferimento del cdbcriteria: http://www.yiiframework.com/doc/api/1.1/cdbcriteria

Prima elabora il tuo array in una stringa separata da virgola che viene utilizzata come valore condizionale nella query SQL

$idString = implode(', ', $hometeamid);
.

Quindi posizionare quella stringa all'interno della clausola IN in query SQL.

$sql = "SELECT *
           FROM event
         WHERE id IN ($idString)"

$mod = Yii::app()->db->createCommand($sql)->queryAll();
.

Dopo l'esecuzione del metodo queryAll riceverai le righe correlate come array risultante

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top