【发布时间】:2010-10-19 18:33:19
【问题描述】:
我有以下条件代码,如果具有适当用户名的记录不存在,它将插入一条新记录,如果存在则更新记录。这很好用。
但是,目前,如果我插入一条新记录,并且只插入名字和姓氏,也许还有地址详细信息,比如电话信息留空,这很好。如果我希望仅使用电话记录更新记录,则姓名和地址信息将被替换为任何内容。
我想知道的是,是否可能有一种简单的方法来填充我的 php html 表单以更新信息,以及我将要更新的字段的内容?我正在使用
<input type="text" name="uniquename" />
获取用户输入,然后将其传递给一个 javascript 函数,该函数随后将传递回下面的 php 代码。如果这是不可能的,有没有一种简单的方法来使用一些 sql/php 魔法,只更新与用户输入相对应的字段,该字段不为空?
$usernameQuery = "select username from USERS where username = '" . $con->escape_string($username) . "'";
$xblah = $con->query($usernameQuery);
while ($row = mysqli_fetch_assoc($xblah))
{
$checkUsername = $row['username'];
}
if ($checkUsername == null) {
$userQuery = "INSERT INTO USERS VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
if ($userInfo = $con->prepare($userQuery)) {
$userInfo->bind_param("ssssssssssssssssssss", $username, $firstname, $lastname, $flaggedauctions, $lastauction, $street1, $city1, $postcode1, $street2, $city2, $postcode2, $phone, $mobilephone, $fax, $email, $website, $bank, $banknumber, $accountnumber, $comments);
$userInfo->execute();
$userInfo->close();
echo "true";
} else {
echo "false";
}
print_r($con->error);
}
else if ($checkUsername == $username) {
$userQuery = "UPDATE USERS SET firstname = ?, lastname = ?, flaggedauctions = ?, lastauction = ?, street1 = ?, city1 = ?, postcode1 = ?, street2 = ?, city2 = ?, postcode2 = ?, phone = ?, mobilephone = ?, fax = ?, email = ?, website = ?, bank = ?, banknumber = ?, accoutnumber = ? WHERE username = ?";
if ($userInfo = $con->prepare($userQuery)) {
$userInfo->bind_param("sssssssssssssssssss", $firstname, $lastname, $flaggedauctions, $lastauction, $street1, $city1, $postcode1, $street2, $city2, $postcode2, $phone, $mobilephone, $fax, $email, $website, $bank, $banknumber, $accountnumber, $username);
$userInfo->execute();
$userInfo->close();
echo "true";
} else {
echo "false";
}
print_r($con->error);
}
【问题讨论】:
标签: php javascript sql mysql