簡體   English   中英

如何使用'$ row'將特定值從一個數據庫表插入另一個數據庫表?

[英]How to insert a particular value from one database table into another using '$row'?

我目前正在嘗試建立一個系統,從“用戶”表中隨機選擇一個用戶,並將其附加到另一個表'agreeuser'或'disagreeuser',具體取決於用戶是否具有'like'值'like'或者“不喜歡”。 我這樣做是通過使用$ row來選擇用戶有“喜歡”意見的完整行,但它似乎沒有將'$ row [username]'中存儲的數據添加到'user'列'agreeuser'或'disagreeuser'表。

我已經嘗試將'$ row ['username']值存儲為變量並在查詢的值方面使用它,但它似乎沒有用。 我也嘗試過組合INSERT和SELECT查詢,它仍然沒有效果。 有誰能告訴我我做錯了什么,拜托? :)

if($_SESSION['pageLoaded'] != "true") {

    $selectLikesQuery = "SELECT * FROM users WHERE opinion = 'like' ORDER BY RAND() LIMIT 1";
    $likeSelectorResult = mysqli_query($userConnect, $selectLikesQuery);
    while($row = mysqli_fetch_assoc($likeSelectorResult)) {
        $removeCurrentAgreeContent = "TRUNCATE TABLE agreeUser";
        $addAgreeUserQuery = "INSERT INTO agreeUser (user) VALUE ('$row[username]')";
        mysqli_query($chatConnect, $removeCurrentAgreeContent);
        mysqli_query($chatConnect, $addAgreeUserQuery);
    }

    $selectDislikesQuery = "SELECT * FROM users WHERE opinion = 'dislike' ORDER BY RAND() LIMIT 1";
    $dislikeSelectorResult = mysqli_query($userConnect, $selectDislikesQuery);
    while($row = mysqli_fetch_assoc($dislikeSelectorResult)) {
        $removeCurrentDisagreeContent = "TRUNCATE TABLE disagreeUser";
        $addDisagreeUserQuery = "INSERT INTO disagreeUser (user) VALUE ('$row[username]')";
        mysqli_query($chatConnect, $removeCurrentDisagreeContent);
        mysqli_query($chatConnect, $addDisagreeUserQuery);
    }
    $_SESSION['pageLoaded'] = "true";
}

我需要將'users'中的用戶名插入'agreeuser'的'user'列。 感謝您的幫助,如果我做了一些愚蠢的事情,我會道歉:)

為什么不使用SQL視圖只查看“虛擬表”中​​的所需數據,而不是創建重復數據?

視圖是一個非常有用的功能。

例如,進行SELECT查詢以查找所需的行:

SELECT * FROM users WHERE opinion = 'dislike'

如果這個選擇適合你,只需添加:

CREATE OR REPLACE VIEW v_agreeUsers AS SELECT * FROM users WHERE opinion = 'dislike'

對於同意的用戶也這樣做:

CREATE OR REPLACE VIEW v_disagreeUsers AS SELECT * FROM users WHERE opinion = 'like'

說實話,我不明白你為什么一個接一個地隨機選擇和插入用戶。

如果您只想獲得一個隨機用戶,只需在創建了上面提到的視圖后運行此查詢:

SELECT * FROM v_agreeUsers ORDER BY RAND() LIMIT 1
SELECT * FROM v_disagreeUsers ORDER BY RAND() LIMIT 1

祝好運! :)

暫無
暫無

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

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