寻找某种用于分组记录集的“前瞻性迭代”

时间:2015-07-14 15:02:25

标签: php cycle

正如它所使用的那样,如果你需要在网站上显示某些内容的列表,你必须使用一些循环结构来迭代数据。

就我而言,它是表格<tr>上的foreach()

foreach($candidates as $candidate)

之后我开始重视:

$candidate->id

问题是一个具体的价值,而且是执法。在我的数据库中,我有如下表所示的数据,因此例如对于candidates_id = 600,有强制执行1和0

id  |  candidates_id  | enforcement 
-------------------------------------
1   |       598       |      2
2   |       599       |      4
3   |       600       |      1
4   |       600       |      0

到目前为止,一切都是OKEY,我从DB获取值,我在现场回应它。问题是像0或1这样的值对最终用户没有意义。所以我写了IF / ELSE条件

if($candidate->enfor == 0)
 echo "TEXT1";
elseif($candidate->enfor == 1)
 echo "TEXT2";
else
 echo "some default text";

在样本数据中,有两个记录,其中candidate_id = 600,并且执行的值不同 现在,该脚本生成两个单独的<tr>元素。一个包含<td>TEXT1</td>,另一个包含<td>TEXT2</td> 我正在寻找一种方法在同一个html表行和列中输出<td>TEXT1,TEXT2</td>,这是因为数据库中有candidate_id = 600的那两条记录。
我尝试为此做另一个循环,但没有任何成功。 我甚至不确定我是否正确思考。

有人可以告诉我如何使这项工作?

编辑: 我对DB的查询是:

SELECT c.id, c.firstname, c.surname, c.email, c.process, c.search_work, c.note,c.registration_date,
       MAX(CASE WHEN cl.language = 'angličtina' THEN cl.level ELSE '-' END)AS 'en',
       MAX(CASE WHEN cl.language = 'němčina' THEN cl.level ELSE '-' END)AS 'ge',
       group_concat(DISTINCT ce.enforcement) as enfor,  
       group_concat(DISTINCT cc.city) as city  
FROM candidates AS c
LEFT JOIN candidates_languages AS cl ON c.id = cl.candidates_id
LEFT JOIN candidates_enforcement as ce on c.id = ce.candidates_id
LEFT JOIN candidates_city as cc on c.id = cc.candidates_id
GROUP BY c.id, c.firstname, c.surname, c.email DESC

0 个答案:

没有答案