我有3张桌子:
1.Personal - 列出工人名单。
2.Codes - 带有班次列表
3.Dienstplan - 就像工作时间表一样
我有以下查询
$query4 = $db->query("SELECT count(codes.lcfruh) AS front_lcfruh, name
FROM dienstplan
LEFT JOIN codes ON (dienstplan.schicht = codes.lcfruh)
LEFT JOIN personal ON personal.perso_id = dienstplan.perso_id
WHERE personal.status_sum = 'rezeption' AND dienstplan.kw = '$kw' AND dienstplan.schicht!='' AND personal.zeigen='ja' GROUP BY dienstplan.datum");
我想在列出的输入字段中列出一个count(codes.lcfruh),如下所示:
$names = array();
while ($result = $query4 ->fetch_object()) {
$names[] = $result->name;
echo '<p class="taglist1"><input name="" type="text" title="'.implode(', ', $names).'" class="zbroj'.$result->front_lcfruh.'" value="'.$result->front_lcfruh.'"></p>';
}
结果应该是一个包含7个输入字段的数组,其中包含一周中每天的count(codes.lcfruh)计数。我正确地获得了正确的字段数(7)和字段中的计数。现在我想列出title =“'。implode(',',$ names)。'”中代码表列中的代码之一的字段“lcfruh”。问题是我第一天只列出了一个名字,第二天就列出了2个名字......依次是表格中的第一个名字。
答案 0 :(得分:0)
不要只选择名称,而是在其上设置GROUP_CONCAT
。如果您有GROUP BY
,则会以逗号分隔当天的所有名称。
SELECT count(codes.lcfruh) AS front_lcfruh, GROUP_CONCAT(name) AS name
然后在你的回声中只显示如下的连字符:
echo '<p class="taglist1"><input name="" type="text" title="'.$result->name.'" class="zbroj'.$result->front_lcfruh.'" value="'.$result->front_lcfruh.'"></p>';