Question

Im nouveau à yii.mon problème est que j'ai un tableau $hometeamid qui contient tous les id que j'ai besoin d'en afficher les détails.Comment puis-je obtenir les données.quelqu'un peut m'aider plz
J'ai essayé
$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>

mais n'a pas de travail.Les champs vides sont à l'affiche.

Était-ce utile?

La solution

Le mieux à faire addInCriteria wiith CDbCriteria ou simple createCommand comme, mais avant de le faire, veuillez vérifier votre requête sur phpmyadmin/navicate/mysql workbench etc.manuellement (est-ce un retour de résultat ou pas?)

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

OU

$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();

Autres conseils

ne pas utiliser findByAttributes si vous définissez l'id comme clé primaire dans votre base de données.

exemple:

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

Vous pouvez utiliser CDbCriteria's addInCondition() méthode pour trouver toutes les lignes avec des valeurs de correspondance des éléments dans un tableau, par exemple quelque chose comme cela devrait fonctionner (pas testé):

$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);

Il y a même un exemple d'utilisation de addInCondition en haut de la CDbCriteria page de référence: http://www.yiiframework.com/doc/api/1.1/CDbCriteria

D'abord le traitement de votre tableau en une chaîne séparée par des virgules, qui est utilisé comme valeur conditionnelle dans la requête sql

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

Puis placez la chaîne à l'intérieur de IN la clause de requête sql.

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

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

après l'exécution de queryAll la méthode que vous recevrez les lignes connexes comme la résultante de la matrice de

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top