如果PHP和MySQL中的所有字段都不为空,则返回True或False

时间:2013-08-29 15:23:50

标签: php mysql

我正在尝试构建一个返回bool值的函数。如果一行中的所有字段都不为空,并且如果有一个为空,则它应该返回TRUE,它应该返回FALSE。该表有很多字段,所以有没有办法在PHP和MySQL中有效地做到这一点?

谢谢!

编辑:

我目前的脚本如下:

private function isFull(){
    $mysqli = //I create the connection
    $result = $mysqli->query("SELECT * FROM table WHERE id = 1 LIMIT 1");
    if($row = $result->fetch_array()){
        if($row['field1'] != ''){
            $toReturn = TRUE;
        } else {
            $toReturn = FALSE;
        }
        //etc
    }
}

3 个答案:

答案 0 :(得分:3)

如果找到一个空行,你可以遍历行检查值,中断并返回false ...

private function isFull(){
    $mysqli = //I create the connection
    $result = $mysqli->query("SELECT * FROM table WHERE id = 1 LIMIT 1");
    if($row = $result->fetch_array()){
        //assume that all are not empty and set the return value to true
        $return = true;
        //loop over each field in the row ...
        foreach($row as $key => $value){
            if(empty($value)){
               //at the first empty field, set return to false and break the loop
               $return = false;
               break;
            }
        }
    } else {
        //no row?
        $return = false;
    }

    return $return;
}

答案 1 :(得分:1)

为什么不保持简单:

private function isFull(){
    $mysqli = //I create the connection
    $result = $mysqli->query("SELECT * FROM table WHERE id = 1 LIMIT 1");
    if($row = $result->fetch_array()){
        if(trim($row['field1']) == '' || trim($row['field2']) == ''){
            return false;
        }
    }
    return true;
}

如果任何字段为空,则返回false。否则它将返回真实。

trim()用于删除可能的结束空间和起始空间。

如果您不想限制结果,只需使用while循环即可。一旦你在while循环中返回一些东西,while循环就会中断,所以其余部分都不会被执行。

答案 2 :(得分:0)

我会这样做:

$empty=true;
$qry = mysql_query($query,$connect_db);
while ($data = mysql_fetch_assoc($qry)){
    if($data["column"]=="")
    {
        $empty=false;
    }
}