繁体   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