我是PHP和Codeigniter的新手,所以我确定这很简单。
我有以这种格式存储的联系方式,其中type(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不存在,移动和Twitter不应该被分配任何东西!然而在我的输出中它给出了之前的值,例如bbm = mobile和twitter = msn。
当案例没有设置时,这些数组怎么可能存在?或者我的逻辑错了?
答案 0 :(得分:7)
你不需要在每个案件下休息一下吗?
case 1:
$contact['facebook'] = $row->value;
break;
等
答案 1 :(得分:0)
设置变量后,每种情况都需要break;
。