编辑:我以为我可以将此作为一个查询运行,如下所示:
SELECT * FROM clubs
JOIN match_request_archive
ON (SELECT COUNT (clubs.id) AS requests FROM match_request_archive)
我很欣赏,虽然我的语法很可怕,但我刚刚将其掀起,现在就调整它。
我有一个用于在表格中显示数据的基本脚本。我遇到了一个无法解决的问题,我需要运行一个简单的查询来向用户显示所有数据。但是在最后一列中,我需要运行一个单独的查询来获取结果。
基本上我表格中的第一列在数据库中具有Rugby Club的唯一ID。在数据库的单独表格中列出了俱乐部向玩家发出的所有请求。我想显示每个俱乐部在我的脚本的最后一列中提出的请求数量,这意味着运行此查询:
SELECT * FROM match_request_archive WHERE club_id LIKE "$row['id']"
$ row ['id']来自下面的PHP脚本:
<?php
include 'credentials.php';
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM clubs";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc())
{
echo "
<tr>
<td>" . $row['id'] . "</td>
<td>" . $row['club_name'] . "</td>
<td>" . $row['club_captain'] . "</td>
<td>" . $row['club_captain_number'] . "</td>
<td>" . $row['club_captain_email'] . "</td>
<td>TBC</td>
</tr>
";
}
} else {
echo "<tr><td>0 results</td></tr>";
}
$conn->close();
?>
为了解决这个问题,我尝试在echo命令中嵌入第二个脚本,但我理解你不能这样做,无论如何它确实会导致致命的错误。我可以单独运行此查询并将其显示在不同的表中,我的问题是我需要将其全部放在一个表中。我希望一切都有道理。
答案 0 :(得分:-1)
在循环中执行查询是不好的做法,因为它的性能非常慢。 因此,如果可能,您应尝试通过一个查询获取所有数据:
SELECT *, COUNT(*) FROM clubs
LEFT JOIN match_request_archive
ON match_request_archive.club_id = clubs.id
GROUP BY clubs.id