[英]How do I check if a field in my mySQL database is empty in PHP
我想知道如何检查特定用户的字段(列)是否为空。
我已成功连接到mySQL数据库,我输入了一个用户,并且字段为空。 我有一个允许用户输入信息的帖子。 根据其他字段是否为空,我希望它们相应地填充。 我想使用逻辑来确定一个字段是否为空。 我正在使用以下内容:
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(trim($_POST['listing_link']) == '') {
}
else if(empty($listing_link1)) {
$listing_link1 = $_POST['listing_link'];
$listing_link1 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link1`='$listing_link1'
WHERE `email`='$emailstring'";
}
else if(!empty($listing_link1) && empty($listing_link2)) {
$listing_link2 = $_POST['listing_link'];
$listing_link2 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link2`='$listing_link2'
WHERE `email`='$emailstring'";
}
else if(!empty($listing_link2) && empty($listing_link3)) {
$listing_link3 = $_POST['listing_link'];
$listing_link3 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link3`='$listing_link3'
WHERE `email`='$emailstring'";
}
else if(!empty($listing_link3) && empty($listing_link4)) {
$listing_link4 = $_POST['listing_link'];
$listing_link4 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link4`='$listing_link4'
WHERE `email`='$emailstring'";
}
else if(!empty($listing_link4) && empty($listing_link5)) {
$listing_link5 = $_POST['listing_link'];
$listing_link5 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link5`='$listing_link5'
WHERE `email`='$emailstring'";
}
$result = mysql_query($query);
}
?>
此代码检查用户单击“ listing_link”按钮时是否输入了任何内容。 如果没有,则什么也不会发生。 如果输入了某些内容,它将检查以确定是否填写了其他任何字段(listing_link1,listing_link2 ... listing_link5)。 $ listing_link1-5个变量应该用于接收信息。
我不能让其他的ifs运行,除了:
else if(empty($listing_link1)) {
$listing_link1 = $_POST['listing_link'];
$listing_link1 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link1`='$listing_link1'
WHERE `email`='$emailstring'";
并通过点击表单按钮继续运行代码,只是用新输入的信息替换了listing_link1变量。
此处编写的逻辑也许有问题。 如果可以的话请帮忙。
您需要先检查$listing_link1
是否为空,然后才能定义它:
else if(empty($listing_link1))
{
$listing_link1 = $_POST['listing_link'];
翻转它们:
$listing_link1 = $_POST['listing_link'];
if(empty($listing_link1))
{
如果我说对了,这将解决您的麻烦:
$empty = 0;
for($i=1; $i<=5; $i++){
$varname = "listinglink$i";
if(empty($$varname)){
$empty = $i;
break;
}
}
if($empty > 0){
$update_field = "listinglink{$empty}";
$update_data = $_POST['listing_link'];
mysql_query("UPDATE users SET `$update_field`='$update_data'
WHERE email='$emailstring'");
}
我在那里做的是旋转一个循环,以检查哪个是第一个空的* listing_link *,一找到它,便将一些变量设置为其编号,然后退出循环。 从那里开始非常简单。
它的作用是: $$varname = 1;
是它采用$ varname的值并将其用作变量名,例如:
$test = "groovy.";
$varname = "test";
echo $$varname; // eqivalent to "echo $test"
有趣的技术:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.