2012-04-23 85 views
0

我在视图文件中遇到了数组问题。我试图做的是让它显示每个标题的标题和竞争者列表,现在它显示空置作为每个标题的冠军,并且每个标题的每个竞争者的TBD当我有值时应该是但不是。未回显正确的值

如果championID的值在表中为0,那么它应该显示为空值,如果不是,那么它应该得到冠军名称并显示它。对于每个竞争者,如果其中的0为数据库那么它应该显示TBD如果它不那么它应该显示他们的名字

这里的查询:

/** 
* Get title champions 
* 
* @return object/NULL 
*/ 
function getTitlesChampions() 
{  
    $this->db->select('titlesList.titleName'); 
    $this->db->select('rosterList.rosterName AS champion'); 
    $this->db->select('con1.rosterName AS contender1'); 
    $this->db->select('con2.rosterName AS contender2'); 
    $this->db->select('con3.rosterName AS contender3'); 
    $this->db->from('titlesChampions'); 
    $this->db->join('titlesList', 'titlesList.id = titlesChampions.titlesListID'); 
    $this->db->join('rosterList', 'rosterList.id = titlesChampions.championID', 'left'); 
    $this->db->join('rosterList AS con1', 'con1.id = titlesChampions.contender1ID', 'left'); 
    $this->db->join('rosterList AS con2', 'con2.id = titlesChampions.contender2ID', 'left'); 
    $this->db->join('rosterList AS con3', 'con3.id = titlesChampions.contender3ID', 'left'); 
    $query = $this->db->get(); 
    if ($query->num_rows() > 0) 
    { 
     return $query->result(); 
    } 
    return null; 
} 

值在titlesChampions表的内部是这样的:

id - 1 titlesListID - 1 championID - 1 contender1ID - 1 contender2ID - 1 contender3ID - 1 
id - 2 titlesListID - 2 championID - 1 contender1ID - 0 contender2ID - 0 contender3ID - 0 
id - 3 titlesListID - 3 championID - 1 contender1ID - 0 contender2ID - 0 contender3ID - 0 

我运行阵列的视图文件中的print_r,这就是打印出:

Array 
(
[0] => stdClass Object 
    (
     [titleName] => Undisputed Heavyweight Title 
     [champion] => Kid Wonder 
     [contender1] => Kid Wonder 
     [contender2] => Kid Wonder 
     [contender3] => Kid Wonder 
    ) 

[1] => stdClass Object 
    (
     [titleName] => Outlaw Title 
     [champion] => Kid Wonder 
     [contender1] => 
     [contender2] => 
     [contender3] => 
    ) 

[2] => stdClass Object 
    (
     [titleName] => Tag Team Titles 
     [champion] => Kid Wonder 
     [contender1] => 
     [contender2] => 
     [contender3] => 
    ) 

) 


    <?php if (!is_null($titlesChampionsList)) { foreach ($titlesChampionsList AS $champion) { 
        echo '<tr>'; 
        echo '<td>'.$champion->id.'</td>'; 
        echo '<td>'.$champion->titleName.'</td>'; 
        echo '<td>'; 
        if ($champion->champion == 0) 
        { 
         echo 'Vacant'; 
        } 
        else { 
         $champion->champion; 
        } 
        echo '</td>'; 
        echo '<td>'; 
        if ($champion->contender1 == 0) 
        { 
         echo 'TBD'; 
        } 
        else { 
         $champion->contender1; 
        } 
        echo '</td>'; 
        echo '<td>'; 
        if ($champion->contender2 == 0) 
        { 
         echo 'TBD'; 
        } 
        else { 
         $champion->contender2; 
        } 
        echo '</td>'; 
        echo '<td>'; 
        if ($champion->contender3 == 0) 
        { 
         echo 'TBD'; 
        } 
        else { 
         $champion->contender3; 
        } 
        echo '</td>'; 
        echo '<td style="text-align: center">'; 
        $data = array('name' => 'user', 'value' => $champion->id); 
        echo '<a href="bios/edituser"><img src='.base_url().'assets/img/icons/packs/fugue/24x24/plus-circle.png /></a>'; 
        echo '<img src='.base_url().'assets/img/icons/packs/fugue/24x24/cross-circle.png id="delete"/>'; 
        echo '</td>'; 
        echo '</tr> 
        '; } } ?> 

任何想法?

+0

你到底想打印出来??? – Baba 2012-04-23 16:11:30

+0

我更新了应该打印出来的帖子。 – 2012-04-23 16:27:43

回答

1

假设数组其实什么是从函数返回:

foreach ($array as $key => $titleObject) { 
    $champion = ($titleObject->champion ? $titleObject->champion : 'Vacant'); 
    echo $titleObject->titleName.' champion is '.$champion.'<br />'; 
    $contender1 = ($titleObject->contender1 ? $titleObject->contender1 : 'tbd'); 
    $contender2 = ($titleObject->contender2 ? $titleObject->contender2 : 'tbd'); 
    $contender3 = ($titleObject->contender3 ? $titleObject->contender3 : 'tbd'); 
    echo $titleObject->titleName.' contenders are '.$contender1.', '.$contender2.' and '.$contender3.'<br />'; 
} 
+0

我对此不确定。 – 2012-04-23 16:28:20

+0

那么,你完全改变了你的问题.... – Ing 2012-04-23 16:29:54

+0

对不起,我没有更清楚地解释它。 – 2012-04-23 16:31:37