【发布时间】:2014-06-02 19:03:28
【问题描述】:
代理数据库表
agent_id agent_name company_name
-------- ---------- -----------
1 AAA XXX
2 BBB YYY
3 CCC ZZZ
4 DDD XYZ
驱动程序数据库表
agent_id driver_id driver_name
-------- ---------- -----------
2 1 EEE
2 2 FFF
2 3 GGG
1 4 HHH
3 5 III
3 6 JJJ
我想显示这样的结果
AGENT DETAILS DRIVER DETAILS
------------ --------------
1, AAA, XXX 1 Driver
2, BBB, YYY 3 Drivers
3, CCC, ZZZ 2 Drivers
4, DDD, XYZ 0 Driver
我已经尝试过了,但我得到了这样的结果
AGENT DETAILS DRIVER DETAILS
------------ --------------
1, AAA, XXX 1 Drivers
1, AAA, XXX 3 Drivers
1, AAA, XXX 2 Drivers
1, AAA, XXX -
我在下面附上了示例图片和代码..
我希望有人能理解我的问题。在这里,我必须显示代理和驱动程序的详细信息。代理表有agent_id、agent_name、company_name。我想从代理表中获取所有记录。然后我想根据agent_id统计司机的数量。
在我的驱动程序数据库表中,我有 agent_id、driver_id、driver_name。我想根据 agent_id 从驱动程序表中获取驱动程序的数量。这是一个工作正常。但是,我的问题是我有多个 while 循环,所以它不会正确获取。见我附上的图片。你很容易理解。在代理详细信息中,它总是在所有行中获取相同的行。
我确定我在 while 循环中犯了一个错误。但是,我不知道如何获得正确的结果..
<?php
$sql="select * from ".TBL_AGENT."";
$result=mysql_query($sql,$CN);
while($row=mysql_fetch_array($result))
{
$agentid = $row['agent_id'];
$agentname = $row['agent_name'];
$companyname = $row['company_name'];
$email = $row['email'];
$sql_query = mysql_query("SELECT agent_id, COUNT(driver_id) AS ".TBL_DRIVER." FROM ".TBL_DRIVER." GROUP BY $agentid"); while($rows = mysql_fetch_array($sql_query, MYSQL_ASSOC))
{ $noofdrivers = $rows['ta_drivers']. " DRIVERS"; echo "<br/>";
?>
<tr>
<td bgcolor="#FFFFFF" style="height: 70px; width: 300px; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">
<b>Agent Name : </b><?=$agentname?><br /><br />
<b>Business Name : </b><?=$companyname?><br /><br />
<b>E-mail Id : </b><?=$email?>
</td>
<td bgcolor="#FFFFFF" style="height: 70px; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">
<?php
echo $noofdrivers; ?>
</td>
<td bgcolor="#FFFFFF" style="height: 70px; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;"></td>
<td bgcolor="#FFFFFF" style="height: 70px; border-bottom: 1px solid #ccc;"></td>
</tr>
<?php } } ?>
【问题讨论】:
-
最好使用联合查询而不是循环运行查询
-
以上这两个查询可以加入吗
-
@MKhalidJunaid :是的,它的工作。我不知道加入查询。发表你的答案我会接受你的答案
-
@MKhalidJunaid 请将其发布为答案!
标签: php mysql join while-loop fetch