如果mysql中的任何一个字段为空,则计算行数

时间:2013-04-13 15:57:39

标签: php mysql

嗨我的表中有几列如果列中的任何一个为空,则应该计为1 ...同时如果同一行中有2列或更多列空白...则不应计为2。 .. 帮帮我mysql查询.....

<?php
include("connect.php");
$unit=$_GET['unit'];
$chapter=$_GET['chapter'];
//$dept=$_GET['dept'];
$result=mysql_query("select * from `$unit` where stopic='$chapter'");
if(mysql_num_rows($result)>0)
{
    while($row=mysql_fetch_array($result))
    {
        $a=$row['ch1'];
        $b=$row['ch2'];
        $c=$row['ch3'];
        $d=$row['ch4'];
        $e=$row['ans'];
        $f=$row['ques'];
    }
}
else
{
    echo "";
}
?>

如果$ a或$ b或$ c或$ d或$ e或$ f为空......它应该只计为1 ...每行一次......对于同一行不计为2 < / p>

3 个答案:

答案 0 :(得分:0)

我真的不明白你的问题。 也许这会有所帮助 - 您可以使用isempty()函数,如果您的变量为空,它将返回true。

创建一个名为empty的变量,并将其赋值为0.然后在for循环中添加以下内容:

if(isempty($a)||isempty($b)||isempty($c)||isempty($d)||isempty($e)||isempty($f))
   $empty++;

答案 1 :(得分:0)

试试这个简单的代码

<?php
include("connect.php");
$unit=$_GET['unit'];
$chapter=$_GET['chapter'];
//$dept=$_GET['dept'];
$result=mysql_query("select * from `$unit` where stopic='$chapter'");
$empty_record = 0;
if(mysql_num_rows($result)>0)
{
    while($row=mysql_fetch_array($result))
    {
        $a=$row['ch1'];
        $b=$row['ch2'];
        $c=$row['ch3'];
        $d=$row['ch4'];
        $e=$row['ans'];
        $f=$row['ques'];

        if($a=='' || $b=='' || $c=='' || $d=='' || $e=='' || $f=='')
        {
            $empty_record++;
        }
    }
}
else
{
    echo "";
}
echo $empty_record;

?>

答案 2 :(得分:0)

我会尝试这样的事情:

<?php
include("connect.php");
$unit=$_GET['unit'];
$chapter=$_GET['chapter'];
//$dept=$_GET['dept'];
$result=mysql_query("select * from `$unit` where stopic='$chapter'");
if(mysql_num_rows($result)>0)
{
    $numOfEmpty = 0;
    while($row=mysql_fetch_row($result))
    {
        for($i = 0;$i<count($result);$i++) {
             if ($result[$i] == "") { 
                $numOfEmpty++;
                break;
             }
        }
    }
    echo $numOfEmpty;
}
else
{
    echo "";
}
?>

但是,如果代码有效,请告诉我。 :)