الحصول على البيانات من قاعدة البيانات باستخدام مصفوفة في yii
-
26-12-2019 - |
سؤال
أنا جديد على yii.مشكلتي هي أن لدي مجموعة $hometeamid
الذي يحتوي على كل المعرف الذي أحتاجه لعرض التفاصيل.كيف يمكنني الحصول على البيانات.بلز شخص يساعدني
لقد حاولت $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>
ولكن لا يعمل.تظهر الحقول الفارغة.
المحلول
من الأفضل القيام بـ addInCriteria باستخدام CDbCriteria أو إنشاء أمر بسيط مثل، ولكن قبل القيام بذلك، يرجى التحقق من استعلامك على phpmyadmin/navicate/mysql Workbench وما إلى ذلك.يدويًا (هل تُرجع النتيجة أم لا؟)
$homeTeamIds=['1','2','3','4'];
$criteria = new CDbCriteria;
$criteria->addInCondition('id',$homeTeamIds,'OR'); //matching any of your homeTeadIds
$result = Event::model()->findAll($criteria);
أو
$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();
نصائح أخرى
لا تستخدم findByAttributes إذا قمت بتعيين المعرف كمفتاح أساسي في قاعدة بياناتك.
مثال:
$mod = Event::model()->findbyPk($no);
يمكنك استخدام معايير CDb'س addInCondition() طريقة للعثور على جميع الصفوف ذات القيم المطابقة للعناصر الموجودة في مصفوفة، على سبيل المثال يجب أن يعمل شيء مثل هذا (لم يتم اختباره):
$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);
يوجد أيضًا مثال لاستخدام addInCondition أعلى الصفحة المرجعية لـ CDbCriteria: http://www.yiiframework.com/doc/api/1.1/CDbCriteria
قم أولاً بمعالجة المصفوفة الخاصة بك في سلسلة مفصولة بفواصل والتي يتم استخدامها كقيمة شرطية في استعلام SQL
$idString = implode(', ', $hometeamid);
ثم ضع تلك السلسلة في الداخل IN
جملة في استعلام SQL.
$sql = "SELECT *
FROM event
WHERE id IN ($idString)"
$mod = Yii::app()->db->createCommand($sql)->queryAll();
بعد تنفيذ queryAll
الطريقة سوف تتلقى الصفوف ذات الصلة كمصفوفة ناتجة