簡體   English   中英

mysql CREATE TABLE JOIN多個表...當數據添加到聯接的表中時,php自動更新新表

[英]mysql CREATE TABLE with JOIN multiple tables … php automatically update the new table when data is added to the tables that are joined

在我正在開發的書本網站上,我顯示位於mysql數據庫中的記錄。 我連接PDO並與之交互。

該數據庫由幾個表組成。 用戶(包括我自己)可以插入數據以及指向圖像的鏈接(圖像已上傳並存儲在服務器上的文件夾中,而不是數據庫中)。

一切都已正常運行,有效,高效,我在書本站點的幾個不同頁面上對表行進行了分頁。

我最近決定,我們應該在一個頁面中(在一個表中)顯示用戶名和書籍位置(在一個表中),以及其他書籍數據(在一個表中),所有這些都在我分頁的一個表中。 然后,站點上的訪問者可以按用戶名(除其他標准外)搜索(我使用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。 我不太了解,但我正在努力尋找一種解決方案來更新新表(該表由三個聯接表組成)。

如果有人在這里讀書有時間,可以請您指出正確的方向,使我能夠找到解決方案嗎? 我會很感激。 謝謝

根據您剛剛描述的內容,您實際上需要一個View而不是一個新表。

如果您的PHP代碼插入到Cow和Users表中,而不是插入flyingpig並且您選擇要在其中顯示數據(未包括在內)的select語句來自flyingpig那么您顯然看不到新數據。 您將只看到數據,直到創建了flyingpig表。

如果我的理解是正確的,則可以使用要用來創建表的SQL語句簡單地創建一個View( flyingpig )。 看看這個

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

祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM