Как вставить значения во вторую строку, если первая строка не пуста? База данных - PullRequest
0 голосов
/ 04 апреля 2019

Я должен вставить значение в parnerCode2, если parnerCodeOwner1 уже принятое значение;

Ниже код вставляется только в parnerCodeOwner1, если приходит новое значение, он переписывает первое, не должно переписываться, значение должновставлен в parnerCode2

<?php
if (isset($_POST['partnerCode'])) {
    // receive all input values from the form
    $partnerCode= mysqli_real_escape_string($db, $_POST['partnerCode']);
    if (empty($partnerCode)) { 
        array_push($errors, "CODE required"); 
    }

    $user_check_query = "SELECT * FROM refer WHERE partnerCode='$partnerCode' LIMIT 1";
    $result = mysqli_query($db, $user_check_query);
    $user = mysqli_fetch_assoc($result);

    if (count($errors) == 0) {
        $query = "update refer set partnerCodeOwner1= '" . $_SESSION['username'] . "'  where randomfield='$partnerCode'  ";
        mysqli_query($db, $query);
    }   
}
?>

ID       randomfield   parnerCode2  parnerCodeOwner1
+-------+-------------+-------------+----------------+
|   1   | uOxerUg4    |             | BuBI9vk        |
+-------+-------------+-------------+----------------+
|   2   | cZzuJlcs    |             | uOxerUg4       |
+-------+-------------+-------------+----------------+
|   3   | BuBI9vke    |             | cZzuJlcs       |
+-------+-------------+-------------+----------------+

1 Ответ

0 голосов
/ 04 апреля 2019

Вы начали с правильного пути с этим кодом:

$user_check_query = "SELECT * FROM refer WHERE partnerCode='$partnerCode' LIMIT 1";
$result = mysqli_query($db, $user_check_query);
$user = mysqli_fetch_assoc($result);

Что вам действительно нужно, так это получить строку, принадлежащую пользователю, а не партнеру.Итак, ваш запрос должен быть:

$user_check_query = "SELECT partnerCode1 FROM refer WHERE randomField='".$_SESSION['username']."' LIMIT 1";

Как только вы получите строку $ user ...

if(empty($user['partnerCode1']))

Если это правда, вставьте partnerCode в partnerCode1.Иначе, вставьте его в partnerCode2.

Кроме того, нет необходимости извлекать строку, чтобы проверить, есть ли ошибка.Таким образом, весь этот код должен следовать после оператора if, который проверяет наличие ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...