gpt4 book ai didi

php - Mysql 在 html 表中返回重复项

转载 作者:行者123 更新时间:2023-11-29 17:48:07 24 4
gpt4 key购买 nike

我正在尝试使用来自 mysql 的数据填充 html 表。但是我陷入了这部分,每次我添加一些数据时它都会重复。在下图中,您可以看到测试 1 每次对每个 P20、P21、P24、P22、P23 重复,并且我需要为所有这些测试 1。当我添加值为 19000 的测试 2 时,它会生成新的 P20,并且所有数据都来自测试 1 到测试 2。有人可以帮助我如何解决此问题。任何提示或建议将不胜感激。非常感谢大家(抱歉我的英语不好)

I would like to make it like this

这是运行此代码

$sql = 'SELECT DISTINCT Pers.naam, Rol.funkcija,pdata.broj
FROM ids
left JOIN Pers ON ids.persid = Pers.id
left JOIN Rol ON ids.rolid = Rol.id
left JOIN pdata ON ids.pdataid = pdata.id


';

$query = $conn->prepare($sql);
$query->execute();

$testing = $query->fetchAll(PDO::FETCH_ASSOC);

?>

<table>
<tr>
<th>P Small <small>(NONE)</small></th>

<?php
foreach ($testing as $test):
?>
<th>
<?php
echo $test['naam'] . '<br />';

?>
</th>
<?php
endforeach;
?>
</tr>

<tr>
<th>TESTING LINES</th>
</tr>

<?php foreach ($testing as $test): ?>
<tr>
<td><?php echo $test['funkcija']; ?></td>
<?php endforeach; ?>



<?php
foreach ($testing as $test):
?>

<td><?php echo $test['broj']; ?></td>
<?php
endforeach;
?>
</tr>
</table>

我想要这样的 enter image description here

最佳答案

需要进行一些重构才能获得您想要的输出。

您似乎从 SQL 结果中枚举了相当多的数据,因此需要进行一些分组以使事情变得更容易。

要为每个“naam”和“funkcija”获取适当的数字,您可以使用array_filter,但理论上它可以在每种情况下返回多个数字。

您还必须嵌套几个 foreach,而不是一个接一个地运行它们。

如果我正确理解您的数据结构,这至少应该为您想要的输出提供一个良好的起点:

<?php

// ...
$testing = $query->fetchAll(PDO::FETCH_ASSOC);

$naams = array_unique(array_column($testing, "naam"));
$funkcijas = array_unique(array_column($testing, "funkcija"));

?>

<table>
<tr>
<th>P Small <small>(NONE)</small></th>
<?php foreach ($naams as $naam): ?>
<th>
<?php echo $naam; ?>
</th>
<?php endforeach; ?>
</tr>
<tr>
<th>TESTING LINES</th>
</tr>

<?php foreach ($funkcijas as $funkcija): ?>
<tr>
<td><?php echo $funkcija; ?></td>
<?php foreach ($naams as $naam): ?>
<?php
$data = array_filter(
$testing,
function ($v) use ($naam, $funkcija)
{
return $v["naam"] === $naam && $v["funkcija"] === $funkcija;
}
);
foreach ($data as $value): ?>
<td><?php echo $value["broj"]; ?></td>
<?php endforeach; ?>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>

关于php - Mysql 在 html 表中返回重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49633988/

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