如果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 |
+-------+-------------+-------------+----------------+
您使用以下代码开始了正确的轨道:
$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语句之后。