gpt4 book ai didi

php mysql foreach echo 错误

转载 作者:行者123 更新时间:2023-11-29 11:55:58 25 4
gpt4 key购买 nike

我在数据库中有两个表:商品表(goods1)和订单表(kB)。以 kB 为单位,每个订单项目等于一行,这意味着 2 个项目的订单 = 2 行,相应列中具有相同的帐单号。 IU想将订购的商品分组到每个帐单号码我得到以下信息:

 <?
...

$sql = $conn->query("
SELECT
kB.BillNum AS B, goods1.*,
GROUP_CONCAT(goods1.ArtName) AS bestArts,
GROUP_CONCAT(goods1.ArtNrAttach) AS ArtNrAttachs,
GROUP_CONCAT(kB.Menge) AS Menges,
FROM
kB, goods1
WHERE kB.bestArt = goods1.id
AND kB.ordDate LIKE '%$datum_seek%'
GROUP BY kB.BillNum");

if(mysqli_error($conn)){ echo " ERROR";}
ELSE IF(!mysqli_error($conn)){


echo'<table colspan="6" style="border:1px solid black;">
<tr>
<th colspan="1">bill number</th>
<th colspan="1">item</th>
<th colspan="1">item nummer</th>
</tr>';

while($row = $sql->fetch_assoc()) {

$bestArts = split(",",$row["bestArts"]);
$ArtNrAttachs = split(",",$row["ArtNrAttachs"]);
$Menges = split(",",$row["Menges"]);

echo '<tr><td style="background-color:lightblue;">'. $row["B"].'</td>';
?>
<td><?php echo $bestArts[0]; array_shift($bestArts); ?></td>
<td><?php echo $ArtNrAttachs[0]; array_shift($ArtNrAttachs); ?></td>
<td><?php echo $Menges[0]; array_shift($Menges); ?></td>
</tr>
<tr>
<td></td>

<?php
foreach($bestArts as $bestArt):
echo '<td>' . $bestArt .'</td>';
endforeach;

foreach($ArtNrAttachs as $ArtNrAttach):
echo '<td>' . $ArtNrAttach .'</td>';
endforeach;

foreach($Menges as $Menge):
echo '<td>' . $Menge .'</td>';
endforeach;

...

打印正确:

| B | ArtName | ArtNr | Menge |
| ArtName | ArtNr | Menge |
| B | ArtName | ArtNr | Menge |
| ArtName | ArtNr | Menge |

但是如果每个“B”(1 个订单的商品)有超过 2 行,那么它会像这样打印:

| B | ArtName | ArtNr | Menge |
| ArtName | ArtNr | Menge |
| B | ArtName | ArtNr | Menge |
| ArtName | ArtNr | Menge |
| ArtName | ArtName |ArtNr | ArtNr | Menge | Menge |

预期输出:

| B | ArtName | ArtNr | Menge |
| ArtName | ArtNr | Menge |
| B | ArtName | ArtNr | Menge |
| ArtName | ArtNr | Menge |
| ArtName | ArtNr | Menge |

我尝试过,但找不到解决方案。有人可以帮忙吗?

最佳答案

如果预期输出是:

| B | ArtName | ArtNr | Menge |
| ArtName | ArtNr | Menge |
| B | ArtName | ArtNr | Menge |
| ArtName | ArtNr | Menge |
| ArtName | ArtNr | Menge |
| ArtName | ArtNr | Menge |

您可以将代码更改为:(假设 $bestArts$bestArts$ArtNrAttachs 具有相同的大小)

<?php for ($i = 0; $i < count($bestArts); $i++) { ?>
<td><?php echo $bestArts[$i];?></td>
<td><?php echo $ArtNrAttachs[$i];?></td>
<td><?php echo $Menges[$i];?></td>
<?php } ?>

并删除 foreach 的。

<小时/>

提出最小的改变,但你肯定需要重新考虑你的代码结构。

关于php mysql foreach echo 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33191017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com