如果我的问题不清楚,我很抱歉,但现在开始了。
我有一个mysql数据库,有两个表(帐户和人员),我想显示"account_name“,下面是分配给该帐户的工作人员的”姓名“列表。
使用下面的代码,我得到了"account_name“,并且只有分配给该帐户的第一个职员的”名称“。有些账户分配了2名或2名以上的工作人员。
我得到:
目标(account_name)
staff1 (名字)
WalMart ("account_name")
staff1 (名字)
我要:
目标("account_name")
staff1 (“名称”) staff2 (“名称”)
WalMart ("account_name")
staff1 (“名称”) staff2 (“名称”) staff3 (“名称”)
任何和所有的帮助都将不胜感激。
亚历克斯
代码:
$query = "SELECT staff.name, staff.drive_id, accounts.id, accounts.account_name
FROM staff
JOIN accounts
ON staff.drive_id = accounts.id
WHERE staff.drive_id = accounts.id
AND accounts.drive_date = CURDATE()
GROUP BY accounts.account_name";
$result = mysql_query($query);
while ($staff = mysql_fetch_array($result))
{
echo "<br />";
echo $staff['account_name'];
echo "<br /><br />";
echo $staff['name'];
echo "<br />";
}发布于 2013-12-27 14:17:19
Group by将将所有结果减少到每个分组字段中的一个结果(按顺序排列)。
$query = "SELECT staff.name, staff.drive_id, accounts.id, accounts.account_name
FROM staff
JOIN accounts
ON staff.drive_id = accounts.id
WHERE staff.drive_id = accounts.id
AND accounts.drive_date = CURDATE()
ORDER BY accounts.account_name";在您的扬声器中,您可以检查account_name是否更改了与前一个结果的比较,并首先回显帐户详细信息,然后返回名称。
$result = mysql_query($query);
$account = '';
while ($staff = mysql_fetch_array($result))
{
if($account == $staff['account_name'])
{
echo "<br />";
echo $staff['account_name'];
$account = $staff['account_name'];
}
echo "<br /><br />";
echo $staff['name'];
echo "<br />";
}https://stackoverflow.com/questions/20802184
复制相似问题