如何从php和mysql中已经填充的表中创建视图?

如何从php和mysql中已经填充的表中创建视图?,php,mysql,Php,Mysql,你好, 我在这方面还是个新手,任何建议都将受到高度赞赏 我为一个运动队创建了一个运动员数据库。现在,我想使用显示的表为将与团队一起选择的球员创建一个视图,以显示团队工作表 我找不到一个办法让它发挥作用。我想添加一个提交按钮或类似按钮,以便将选中的所有播放机填充到一个视图中,并随后显示以进行打印。 如有任何建议,将不胜感激 显示的表格: <thead> <tr> <th>Name</th> <th>

你好,
我在这方面还是个新手,任何建议都将受到高度赞赏

我为一个运动队创建了一个运动员数据库。现在,我想使用显示的表为将与团队一起选择的球员创建一个视图,以显示团队工作表

我找不到一个办法让它发挥作用。我想添加一个提交按钮或类似按钮,以便将选中的所有播放机填充到一个视图中,并随后显示以进行打印。
如有任何建议,将不胜感激

显示的表格:

<thead>
    <tr>
        <th>Name</th>
        <th>Surname</th>
        <th>School</th>
        <th>Age</th>
        <th>Age Group</th>
        <th>Edit</th>
        <th>Delete</th>
        <th>Add to Team</th>

        <form action="" method="post">
    </tr>
</thead>
<!-- Table body -->
<tbody>
    <?php foreach($result as $index => $row) : ?>
    <tr>
        <td align="left"><?php echo $row['Name']; ?></td>
        <td align="left"><?php echo $row['Surname']; ?></td>
        <td align="left"><?php echo $row['School']; ?></td>
        <td align="left"><?php echo $row['Age']; ?></td>
        <td align="left"><?php echo $row['age_group']; ?></td>
        <td><a href="edit_player.php" title="Edit" onclick="return confirm('Confirm Player Delete ?')"></span> Edit</td>
        <td><a href="" title="Delete" onclick="return confirm('Confirm Player Delete ?')"></span> Delete</td>
        <td><input type="checkbox" name="add_to_team"/>Add to Team </span></td>
    </tr>
</tbody>
团队的表结构:

+-------------------------------------+
| `Club` varchar(20) NOT NULL,        |
|   `Name` varchar(20) NOT NULL,      |
|   `Surname` varchar(20) NOT NULL,   |
|   `Posisiton` varchar(20) NOT NULL, |
|   `Picture` blob NOT NULL,          |
|   `Team` varchar(5) NOT NULL,       |
|   `date` date NOT NULL,             |
|   `Id_num` varchar(13) NOT NULL     |
+-------------------------------------+

我猜您的
Players
Teams
表中的
Id\u num
列是唯一的标识符。这是一个猜测,因为通常这种唯一标识符被定义为整数,类似这样的定义可以保证它们是唯一的

    ...
    Id_Num INT NOT NULL AUTO_INCREMENT,
    ...
    PRIMARY KEY (Id_Num),
    ...
无论如何,如果你在球员和球队之间建立关系,你有两个选择

第一选择:如果一名球员只能在一个队中:

这在我们的贸易中被称为一对多关系。一支球队,很多球员

Players
表中添加一个名为Team_Id_Num的列。将球员分配给球队时,更新球员的行,并将球队的Id_Num值放入该列中

然后,要获得团队中的所有球员,请使用如下的
JOIN
查询:

   SELECT Teams.Name, Teams.Club, Players.Surname, Players.Name
     FROM Teams
     JOIN Players ON Players.Team_Id_Num = Teams.Id_Num
    WHERE Teams.Club = 'Manchester United'
   SELECT Teams.Name, Teams.Club, Players.Surname, Players.Name
     FROM Teams
     JOIN Players_Teams ON Teams.Id_Num = Players_Teams.Teams_Id_Num
     JOIN Players ON Players_Teams.Player_Id_Num = Player.Id_Num
    WHERE Teams.Club = 'Manchester United'
最后,如果您真的想要一个SQL视图,您可以这样做

  CREATE VIEW Roster AS
       SELECT Teams.Name TeamName, Teams.Club, Players.Surname, Players.Name
         FROM Teams
         JOIN Players ON Players.Team_Id_Num = Teams.Id_Num
   CREATE VIEW Roster AS
        SELECT Teams.Name TeamName, Teams.Club, Players.Surname, Players.Name
          FROM Teams
          JOIN Players_Teams ON Teams.Id_Num = Players_Teams.Teams_Id_Num
          JOIN Players ON Players_Teams.Player_Id_Num = Player.Id_Num
然后问它,说

      SELECT * FROM Roster WHERE Club = 'Arsenal'
第二选择:如果一名球员可以加入多个球队

这在我们的贸易中被称为多对多关系。很多球队,很多球员

添加一个包含两列的新表,称为
Players\u Teams
。此表定义了球员和球队之间的关系。这些是列。它有时被称为联接表

 Players_Id_Num
 Teams_Id_Num
将球员分配给球队时,请在此表中插入一行,其中包含球员和球队的Id_Num值

如果球队后来解雇了该球员,则删除相应的行

然后,要获得团队中的所有球员,请使用如下的
JOIN
查询:

   SELECT Teams.Name, Teams.Club, Players.Surname, Players.Name
     FROM Teams
     JOIN Players ON Players.Team_Id_Num = Teams.Id_Num
    WHERE Teams.Club = 'Manchester United'
   SELECT Teams.Name, Teams.Club, Players.Surname, Players.Name
     FROM Teams
     JOIN Players_Teams ON Teams.Id_Num = Players_Teams.Teams_Id_Num
     JOIN Players ON Players_Teams.Player_Id_Num = Player.Id_Num
    WHERE Teams.Club = 'Manchester United'
最后,如果您真的想要一个SQL视图,您可以这样创建它

  CREATE VIEW Roster AS
       SELECT Teams.Name TeamName, Teams.Club, Players.Surname, Players.Name
         FROM Teams
         JOIN Players ON Players.Team_Id_Num = Teams.Id_Num
   CREATE VIEW Roster AS
        SELECT Teams.Name TeamName, Teams.Club, Players.Surname, Players.Name
          FROM Teams
          JOIN Players_Teams ON Teams.Id_Num = Players_Teams.Teams_Id_Num
          JOIN Players ON Players_Teams.Player_Id_Num = Player.Id_Num

并以与我前面所示相同的方式进行查询。

团队、球员和团队中球员的表结构是什么?此外,视图是指mySQL视图,还是简单的“查看”球队的HTML页面?我有一个球员表,然后是一个球队表,包括俱乐部名称、球队名称、球员名称、姓氏、位置、年龄和照片。mySQL视图最好保留一个历史记录,但要查看的HTML页面也可以。SQL视图不“填充”,也不维护“历史记录”。它只是一个预先编写的SELECT语句。从视图中选择时,数据来自执行选择时在视图中指定的表。如果您提供了表之间的结构和关系,那么将很容易构造带有联接的select。好的,谢谢,这很有意义。不确定如何从phpMyAdmin中获取结构的正确格式。“我一弄明白,就发布这个结构。”斯洛哈什我在上面添加了这个结构。