Как вставить определенное значение из одной таблицы базы данных в другую, используя '$ row'?

0

В настоящее время я пытаюсь создать систему, которая случайным образом выбирает пользователя из таблицы "пользователи" и добавляет его к другой таблице "согласен" или "не согласен" в зависимости от того, имеет ли пользователь значение "мнение" "нравится". или "неприязнь". Я делаю это с помощью $ row, чтобы выбрать полную строку, где у пользователя есть мнение "like", но, похоже, он не добавляет данные, хранящиеся в "$ row [username]", в столбец "user" таблицы "согласен" или "не согласен".

Я уже пытался сохранить значение '$ 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' было вставлено в столбец 'user' в 'acceptuser'. Спасибо за любую помощь, и извинения, если я делаю что-то глупое :)

Теги:

1 ответ

0

Почему бы вам не использовать представления 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

Удачи! :)

  • 0
    Я помещаю в таблицу только одного случайного пользователя за раз, чтобы только у них могли быть права использовать окно чата на странице, прежде чем они будут заменены другим. Спасибо, это выглядит очень полезным :) извините за беспокойство, но знаете ли вы, какие запросы мне нужно заменить на эти или где я должен поместить их в код? Еще раз спасибо :)
  • 0
    Просто зайдите в вашу командную строку mysql или любого менеджера mysql, такого как PhpMyadmin или других. И создавать представления, используя команды, которые я вам отправил. Затем вы можете написать свой код на PHP для работы с данными, полученными из созданных представлений.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню