如何检查mySQL数据库中的字段是否为空

时间:2012-02-09 01:57:43

标签: php mysql

我想知道如何检查特定用户的字段(列)是否为空。

我已成功连接到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变量应该承担信息。

除了:

之外,我无法让其他人运行
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变量。

也许这里写的逻辑有问题。如果可以的话请帮忙。

2 个答案:

答案 0 :(得分:0)

在您检查它是否为空之前,您不会定义$listing_link1

else if(empty($listing_link1))
{
        $listing_link1 = $_POST['listing_link'];

翻转他们:

$listing_link1 = $_POST['listing_link'];
if(empty($listing_link1))
{

答案 1 :(得分:0)

如果我找到了你,这将解决你的困境:

$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"

有趣的技巧:)