【发布时间】:2017-03-09 22:26:23
【问题描述】:
我有 3 张桌子:
个人资料
标识 |名称 |政策
用户
标识 |全名 |索赔号码
和returnprod
claim_id |产品名称 |说明
我的 SQL 是这样的:
("SELECT *
,CONCAT(fname, ' ' ,lname) AS fullName
,CONCAT(firstname, ' ' ,lastname) AS InsName
,a.address AS ADDRESS
,a.city AS CITY
,a.state AS STATE
,a.zip AS ZIP
,a.phone AS PHONE
,a.fax AS FAX
,a.email AS EMAIL
FROM profile a
INNER JOIN returnprod b ON a.policy = b.claim_id
INNER JOIN users c ON a.adjuster_id = c.id
WHERE date >= '$Start' AND date <= '$End'
向前跳一点进入循环
`$products[]= $row;`
`foreach ($products as $product)
{
if ($row['policy'] === $product['claim_id']) {
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowcount,$product['product']);
$objPHPExcel->getActiveSheet()->SetCellValue('C'.$rowcount, $product['comment']);
$objPHPExcel->getActiveSheet()->SetCellValue('D'.$rowcount, $product['anotes']);
$objPHPExcel->getActiveSheet()->SetCellValue('E'.$rowcount, $product['price']);
}`
如果只有一种产品,这可以正常工作。结果将如下所示...
第 1 行:claim_id |名字 |调节器名称
第 2 行:产品名称 |描述 |等等
如果我有多个产品,就会发生这种情况...
第 1 行:claim_id |名字 |调节器名称
第 2 行:产品名称 |描述 |等
第 3 行:claim_id |名字 |调节器名称
第 4 行:产品名称 |描述 |等
第 5 行:产品名称 |描述 |等等
不是将所有产品组合在一起并在配置文件信息下方显示所有产品,而是在配置文件下为我提供第一个结果,然后再次为我提供第一个产品的配置文件信息,然后是第二个产品。
第一次如何将所有产品分组到配置文件下?
示例:
第 1 行:claim_id |名字 |调节器名称
第 2 行:产品名称 |描述 |等
第 3 行:产品名称 |描述 |等等
感谢您抽出宝贵时间阅读本文。
【问题讨论】:
-
您的查询不应在 foreach 中迭代
claim_id | firstname | adjuster name,您需要将其保留在 foreach 之外。 -
我在 for each 循环中没有它。上面更新的答案反映在每个人的内部。
标签: php mysql nested-loops