2015-11-28 69 views
0

我是yiibie。我試圖做的是從我的數據庫檢索數據,併爲此我使用cDbCriteria。我想從我的數據庫表中獲取名爲Event的最後4張圖像。然後想要單獨顯示這4個圖像。我正在使用這種方法,但沒有得到任何結果,請幫助我。Yii:使用Cdbcriteria檢索數據

 <?php 
$Criteria = new CDbCriteria(); 
$Criteria->limit = 4; 
$Criteria->order = "image DESC"; 
$Criteria->select = "id, image"; 
$Events = Event::model()->findAll($Criteria); 
foreach ((array)$Events as $Event) 
{ 
    $Event[1]=$image1; 
    $Event[2]=$image2; 
    $Event[3]=$image3; 
    $Event[4]=$image4; 

} 
    ?> 
<div class="row"> 
<h3>Events</h3> 
<div class="col-md-3"> 
<div class="thumbnail"> 

    <img src="<?php echo $image1 ?>"> 

<div class="caption"> 
    <a href="join.php"> <button class="btn btn-primary center-block">Join</button></a> 
    </div> 
    </div> 
</div> 

回答

0

findAll()方法檢索一個ActiveRecords數組,所以你需要一個foreach循環。嘗試:

foreach ((array)$Events as $Event) 
{ 
    echo " 
     <div class='col-md-3'> 
     <div class='thumbnail'> 
      <img src='$Event->image' > 
      <div class='caption'> 
       <a href='join.php'><button class='btn btn-primary center-block'>Join</button></a> 
      </div> 
     </div> 
     </div> 
    "; 
} 
+0

image' >"; } ?>
我試過這樣,但它不是;噸showning我像 –

+0

可以請在上面的代碼進行編輯,其實我不擅長這些事情,我會感謝。 –

+0

謝謝@Giuseppe Romano,我錯過了一些東西,請讓我回復我的問題。 –

0
$Criteria = new CDbCriteria(); 
$Criteria->limit = 4; 
$Criteria->order = "id DESC"; 
$Criteria->select = "id, image"; 
$Events= Event::model()->findAll($Criteria); 

這將讓最後4條

1路

if(isset($Events[0])) 
     echo $Events[0]->image; 
if(isset($Events[1])) 
     echo $Events[1]->image; 
if(isset($Events[2])) 
     echo $Events[2]->image; 
if(isset($Events[3])) 
     echo $Events[3]->image; 

我在這裏檢查isset()因爲有可能b 3分配條目。這是靜態

第二方式

foreach($Events as $event) 
    { 
     echo $event->image; 
    } 

    this is dynamic binding. 
+0

我已經更新了這個問題,請看看它。 –

+0

foreach也顯示圖像個體。這是動態的。這是很好的做法,使用動態綁定然後靜態綁定 – Dhara

+0

感謝@jazz你的答案,我理解的邏輯,但我無法顯示圖像,代碼是正確的,因爲我在其他示例中使用相同的代碼顯示一個名稱。可能是什麼問題,爲什麼它沒有顯示圖像? –