繁体   English   中英

如何检查MySQL数据库中的字段在PHP中是否为空

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM