如果第一行不为空,如何将值插入第二行?数据库

问题描述 投票:0回答:1

如果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       |
+-------+-------------+-------------+----------------+
php mysql mysqli
1个回答
0
投票

您使用以下代码开始了正确的轨道:

$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语句之后。

© www.soinside.com 2019 - 2024. All rights reserved.