gpt4 book ai didi

php - 使用 MySQL 按 url 对反馈结果进行排序

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

我在使用 MySQL 对结果进行排序时遇到问题。我正在构建一个反馈功能,将好的、一般的或差的发送到我的数据库中。我创建了一个页面来检查这些结果并按网址对它们进行排序。它工作得很好,只是当我希望它清楚地显示每个页面的总数时,它会显示每个反馈的总数。

例如我得到这个:

网址 1:好 10 |平均 2 |可怜4

网址 2:好 10 |平均 2 |可怜4

当我想要这样的东西时:

网址 1:好 6 |平均 1 |差0

网址 2:好 4 |平均 1 |可怜4

这是我的代码:

<?php

try {
$bdd = new PDO('mysql:host=localhost;dbname=lexcelera', 'root', '');
}
catch(Exception $e) {
die('Erreur : ' .$e->getMessage());
}

$sorter = $bdd->query('SELECT DISTINCT avis, url FROM feedback');

while ($donnees = $sorter->fetch()) {

?>

<table><tr><td style="width:500px;">

<?php
echo $donnees['url'];
?>

</td>
<td>Good <br />

<?php
$reponse = $bdd->query('SELECT COUNT(*) FROM feedback WHERE avis = \'Good\'');

while ($donnees = $reponse->fetch()) {
echo $donnees[0];
}
?>

</td>
<td>Average <br />

<?php
$reponse = $bdd->query('SELECT COUNT(*) FROM feedback WHERE avis = \'Average\'');

while ($donnees = $reponse->fetch()) {
echo $donnees[0];
}
?>

</td>
<td>Poor <br />

<?php
$reponse = $bdd->query('SELECT COUNT(*) FROM feedback WHERE avis = \'Poor\'');

while ($donnees = $reponse->fetch()) {
echo $donnees[0];
}
?>

</td></tr>
</table>

<?php
}
$reponse->closeCursor();

?>

知道我应该这样做吗?我在论坛上查了很多,但找不到解决我的问题的正确方法...

谢谢!

所以现在我有这个:

<?php

try {
$bdd = new PDO('mysql:host=localhost;dbname=lexcelera', 'root', '');
}
catch(Exception $e) {
die('Erreur : ' .$e->getMessage());
}

$sorter = $bdd->query('SELECT DISTINCT url FROM feedback ORDER BY url');

while ($donnees = $sorter->fetch()) {

?>

<table><tr><td style="width:500px;">

<?php
echo "<br/>".$donnees['url'];
?>

</td>
<td>Good <br />

<?php
$reponse = $bdd->query('SELECT COUNT(*) FROM feedback WHERE avis = \'Good\' AND url = \'' . $donnees['url'] . '\'');

while ($donnees = $reponse->fetch()) {
echo "<br/>".$donnees[0];
}
?>

</td>
<td>Average <br />

<?php
$reponse = $bdd->query('SELECT COUNT(*) FROM feedback WHERE avis = \'Average\' AND url = \'' . $donnees['url'] . '\'');

while ($donnees = $reponse->fetch()) {
echo "<br/>".$donnees[0];
}
?>

</td>
<td>Poor <br />

<?php
$reponse = $bdd->query('SELECT COUNT(*) FROM feedback WHERE avis = \'Poor\' AND url = \'' . $donnees['url'] . '\'');

while ($donnees = $reponse->fetch()) {
echo "<br/>".$donnees[0];
}
?>

</td></tr>
</table>

<?php

}
$sorter->closeCursor();
?>

它几乎可以工作,但它只是返回良好的语句(保持 0 表示较差和平均)。

另外,我不确定关闭语句:我应该放置 ^response 还是 $sorter?

最佳答案

您的查询将返回 URL1 和 URL2 中 avis='Good' 的所有结果的计数

将其更改为

$reponse = $bdd->query('SELECT COUNT(*) FROM feedback WHERE avis = \'Good\' GROUP BY url');

插入换行符

$reponse = $bdd->query('SELECT COUNT(*) as count FROM test WHERE avis = \'Good\' and url=\''.$donnees['url'].'\'');

while ($donnees = $reponse->fetch()) {
echo "<br/>".$donnees[0];
}

也改变

$sorter = $bdd->query('SELECT avis, url FROM test group by url');

关于php - 使用 MySQL 按 url 对反馈结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25481531/

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