我有两个表,SpeciesHuntBoats包含Boats,Make,Skipper等和SpeciesHunt的详细信息,这是由船长提交捕获报告表格及其捕捞渔获物的详细信息而生成的。 showboats.php显示5列,年份,船名,制作,船长,物种数量。
对于最后一列,我想要显示SpeciesHunt中出现BoatName的行数(给出一个谁输入了最多捕获量的排行榜)。这是我能够得到的不幸,任何帮助非常感谢!
<body>
<?php
$servername = "xxx";
$username = "xxx";
$password = "xxx";
$dbname = "xxx";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Count Rows
$result = mysqli_query($conn, "SELECT * FROM SpeciesHunt");
$num_rows = mysqli_num_rows($result);
// Check row count of entire table works
echo "$num_rows Rows\n";
$sql = "SELECT Year, BoatName, BoatMake, Skipper FROM SpeciesHuntBoats";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>Hunt Year</th><th>Boat Name</th><th>Boat Make</th><th>Skipper</th><th>Number Of Species</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr><td>" . $row["Year"]. "</td><td>" . $row["BoatName"]. "</td><td>" . $row["BoatMake"]. "</td><td>" . $row["Skipper"]. "</td><td>
$num_rows</td></tr>";
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
</body>
表结构:SpeciesHunt
对于你的桌子,你应该更好地利用船和狩猎之间的关系
你应该研究一下sql关系。
目前,您基本上将船名,船舶和船长保存两次。
这是对结构的更好建议:
船:
狩猎:
在这种情况下,您可以执行连接两个表的SQL查询
select Year, Name, Make, Skipper, count(hunts.id) from boats
join hunts on boats.id = hunts.BoatId
group by Year, Name, Make, Skipper;
这将返回的是具有狩猎记录总数的某艘船。
你可以研究的东西: