正如它所使用的那样,如果你需要在网站上显示某些内容的列表,你必须使用一些循环结构来迭代数据。
就我而言,它是表格<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