2015-10-16 41 views
0

在我正在开发的书籍网站,我显示位于MySQL数据库中的记录。我连接并与PDO交互。mysql CREATE TABLE JOIN多个表... PHP自动更新新表时,数据被添加到表中加入

db由几个表组成。用户(包括我自己)可以插入数据并链接到图像(上传并存储在服务器上的文件夹中,而不是数据库)。

一切都已经发挥功能,有效,高效,我在我的书籍网站的几个不同的页面上分页表格行。

我最近决定我们应该在一个表格中显示用户名和书籍位置(在一个表格中)以及其他书籍数据(在一个表格中),所有这些都在一个单独的表格中,我在这个网站上进行分页。然后,网站的访问者可以通过用户名(以及其他标准)搜索(我使用PDO准备好的语句),以查看特定用户的贡献,以及查看书籍的位置。

我通过加入三个表格创建了一个新表格,并对我的书籍网站上的行进行分页。第一天一切似乎都运行良好。然而,我很快注意到,当一个用户(包括我自己)将数据插入到三个连接的表中的一个(或多个)中时,我创建的新表不会被新数据更新。

这是MySQL的:

CREATE TABLE flyingpig as 
SELECT cow.super_imagelinks, cow.super_pass, cow.super_title, 
cow.super_copyright_year, cow.super_author, cow.super_link, cow.super_date, 
pass_stamps.stamp_username, pass_stamps.stamp_country, users.user_name 
enter code here 
FROM cow 
JOIN pass_stamps ON super.cow_pass = pass_stamps.super_pass 
JOIN users ON cow.super_username = users.user_id 

这里是我的PHP的一个片段:

  <tr>    
       <td><img src="<?php echo $row['super_imagelinks']; ?>" width="194" height="272"></td> 
       <td><?php echo $row['super_pass']; ?></td> 
       <td><?php echo $row['super_title']; ?></td> 
       <td><?php echo $row['super_copyright_year']; ?></td> 
       <td><?php echo $row['super_author']; ?></td> 
       <td><?php echo $row['user_name']; ?></td> 
       <td><?php echo $row['stamp_country']; ?></td> 
       <td><?php echo $newDate = date("F j, Y, g:i a", strtotime($row['super_date'])); ?></td> 
       <td><a href="<?php echo $row['super_link']; ?>"><span style="color: #417DC1;">view</span></a></td> 
      </tr> 

它的作品,但是当用户在原来的三个表的一个(或多个)插入新的数据我创建的新表不会更新。

自去年以来,我一直在学习php,PDO和mysql。我不知道很多,但我正在努力寻找解决方案来更新新表(由三个连接表组成)。

如果有人在这里阅读有时间,请您指出正确的方向,我可以找出解决方案?我会很感激。谢谢

回答

1

基于你刚才描述的你实际上想要一个视图而不是一个新表。

如果你的PHP代码插入表牛和用户,而不是在flyingpig和你的选择语句,你拉数据显示(你没有包括)是从flyingpig显然你没有看到新的数据。在创建表flyingpig之前,您只能看到数据。

如果我的理解正确,您可以简单地使用您用来创建表的SQL语句创建视图(flyingpig)。看看这个

https://dev.mysql.com/doc/refman/5.0/en/create-view.html

祝你好运!

+0

@ Kalagen - 我查看了链接到的文档,然后实现了它。 CREATE VIEW的工作非常好。我非常感谢你的帮助。我已经接受你的答案。此外,我试图加强您的答案,但因为我还没有名誉,看起来我的选票不会影响公开展示的选票。 – Duke

+0

@Duke很高兴能帮到你!快乐的编码。不要担心投票,如果你有时间帮助其他人:) – Kalagen