[英]Display data from two tables - one to many relationship in codeigniter
我有兩個表:
Table 1 -- rps_users:
id
membership_number
family_name
first_name
email_address
staff (staff column having values Y and N)
Table 2 -- rps_volunteer_score:
volunteer_id
registration_assessor
interviewer
professional_registration_advisor
第一個表中的id
列包含與第二個表中的volunteer_id
id
列相同的值。 每個用戶可以具有多個registration_assessor
, interviewer
和professional_registration_advisor
值。這些列的可能值為0-4
。
我想要在瀏覽器記錄中顯示的內容是在staff
列中值為N
用戶,其格式如下:
membership_number:000
family_name:Name1
first_name:Name2
email_address:a@b.com
Type:Interviwer/Assessor/Registrar/PRA/Moderator(If the user have multuple role display all ie, Interviewer,Assessor)
根據以下條件對類型列進行重新記錄
if( $interviewer!="" && $interviewer <= 4 )echo "Interviewer";
if($registration_assessor !="" && $registration_assessor >= 2 && $registration_assessor <= 4 )echo "Assessor";
if($registration_assessor !="" && $registration_assessor >= 3 && $registration_assessor <= 4)echo "Moderator";
if($registration_assessor !="" && $registration_assessor == 4 ) echo "Registrar";
if($professional_registration_advisor !="" && $professional_registration_advisor== 1)echo "PRA";
這是我的模型功能
public function get_volunteers_list($condition)
{
$this->db->select("u.id,u.membership_number,u.family_name,u.first_name,u.email_address,vs.volunteer_id,vs.registration_assessor, vs.interviewer,vs.professional_registration_advisor");
$this->db->from(self::$tbl_name . " as u");
$this->db->join(Volunteer_score::$tbl_name . " as vs", "u.id = vs.volunteer_id","left");
$this->db->where($condition);
$query = $this->db->get();
return $query->result();
}
這是我的控制器代碼
$volunteer_list = $this->Users->get_volunteers_list(array("u.staff"=>'N'));
$this->data["volunteer_list"] = $volunteer_list;
這是我的查看代碼
<?php
if($volunteer_list)
{
foreach($volunteer_list as $volunteer)
{
echo "<td>{$volunteer->membership_number}</td>";
echo "<td>{$volunteer->family_name}, {$first_name}</td>";
echo "<td>{$volunteer->email_address}</td>";
echo "<td>";(Here i want to display the type of the user)
//Following is the condition for "TYPE"
/*if( $interviewer!="" && $interviewer <= 4 )
{
echo "Interviewer";
}
if($registration_assessor !="" && $registration_assessor >= 2 && $registration_assessor <= 4 )
{
echo "Assessor";
}
if($registration_assessor !="" && $registration_assessor >= 3 && $registration_assessor <= 4)
{
echo "Moderator";
}
if($registration_assessor !="" && $registration_assessor == 4 )
{
echo "Registrar";
}
if($professional_registration_advisor !="" && $professional_registration_advisor == 1)
{
echo "PRA";
}*/
echo"</td>";
echo "</tr>";
}
}
?>
匯編的sql看起來像:
SELECT u.id, u.membership_number, u.family_name, u.first_name, u.email_address,
GROUP_CONCAT(vs.registration_category) AS type
FROM volunteers_list as u
LEFT JOIN Volunteer_score as vs ON(u.id = vs.volunteer_id)
GROUP BY u.id;
並且您將獲得一行,其registration_categorys以逗號分隔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.