我正在尝试构建一个返回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
}
}
答案 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;
}
}