根据变量

时间:2017-12-19 10:57:26

标签: php mysql

我有两个表,SpeciesHuntBoats包含Boats,Make,Skipper等和SpeciesHunt的详细信息,由船长提交一份捕获报告表格,其中包含捕鱼捕捞的详细信息。 showboats.php显示5列,年份,船名,制作,船长,物种数量。

对于最后一列,我想要显示出SpecNameHunt中出现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

SpeciesHuntBoats

1 个答案:

答案 0 :(得分:0)

对于你的桌子,你应该更好地利用船只和狩猎之间的关系

你应该研究一下sql关系。

目前,您基本上将船名,船舶和船长保存两次。

这是对结构的更好建议:

<强>船

  • 名称
  • 船长
  • 照片

<强>狩猎:

  • DateCaught
  • 垂钓者
  • 注释
  • BoatId(这将是某船记录的参考)

在这种情况下,您可以执行连接两个表的SQL查询

Sub parser206()
    Dim r As Range
    For Each r In Columns(1).Cells.SpecialCells(2)
        arr = Split(r.Text, ":")
        r.Offset(0, 1) = arr(1)
        r.Offset(0, 2) = arr(2)
    Next r
End Sub

这将返回一条具有狩猎记录总数的特定船只。

您可以研究的内容:

  • MySQL关系
  • MySQL加入
  • MySQL聚合