0

我对 PHP 和 Codeigniter 还很陌生,所以我确信这很简单。

我有以这种格式存储的联系方式,其中类型是(1、2、3、4)映射到(facebook、mobile、bbm、msn、twitter):

ID | USERID | TYPE | VALUE
1  |    8   |  2   | 076773635

我已经建立了一个模型来访问这些联系方式,可能没有,或者最多每种类型都有一个;

function getContactDetails($userid) {
    $query = $this->db->query("SELECT * FROM who_user_contact_info WHERE userid=".$userid);

    foreach ($query->result() as $row)
    {
        switch ($row->type) {
            case 1:
                $contact['facebook'] = $row->value;  
            case 2:
                $contact['mobile'] = $row->value; 
            case 3:
                $contact['bbm'] = $row->value; 
            case 4:
                $contact['msn'] = $row->value;  
            case 5:
                $contact['twitter'] = $row->value; 
        }

    }


    return $contact;
}

然后我的控制器将这些数据传递给我的视图;

<h3>Contact Info</h2>
<?php   
    echo "Facebook: ". $facebook ."<br />";
    echo "mobile:".  $mobile ." <br />";
    echo "bbm:".  $bbm ." <br />";
    echo "msn:".  $msn ." <br />";
    echo "Twitter:".  $twitter ." <br />";
?>

这似乎几乎可以工作,但肯定有一个错误,例如说类型 3 和 5 不存在,mobile 和 twitter 不应该被分配任何东西!然而在我的输出中,它给出了之前的值,例如 bbm=mobile 和 twitter=msn。

当案例没有设置它们时,这些数组怎么可能存在?还是我的逻辑错了?

4

2 回答 2

7

您不需要在每种情况下都休息一下吗?

case 1:
$contact['facebook'] = $row->value;  
break;

ETC

于 2012-04-04T13:00:50.253 回答
0

break;设置变量后,您在每种情况下都需要 a 。

于 2012-04-04T13:02:07.600 回答