根据PHP

时间:2017-11-01 22:39:15

标签: php mysql

编辑:我以为我可以将此作为一个查询运行,如下所示:

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命令中嵌入第二个脚本,但我理解你不能这样做,无论如何它确实会导致致命的错误。我可以单独运行此查询并将其显示在不同的表中,我的问题是我需要将其全部放在一个表中。我希望一切都有道理。

1 个答案:

答案 0 :(得分:-1)

在循环中执行查询是不好的做法,因为它的性能非常慢。 因此,如果可能,您应尝试通过一个查询获取所有数据:

SELECT *, COUNT(*) FROM clubs
LEFT JOIN match_request_archive
ON match_request_archive.club_id = clubs.id
GROUP BY clubs.id