我对 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。
当案例没有设置它们时,这些数组怎么可能存在?还是我的逻辑错了?