0

嗨,我的表中有几列,如果任何一列为空,则应计为 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

4

3 回答 3

0

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

创建一个名为空的变量并将其值设为 0。然后在你的 for 循环中添加:

if(isempty($a)||isempty($b)||isempty($c)||isempty($d)||isempty($e)||isempty($f))
   $empty++;
于 2013-04-13T16:07:07.157 回答
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;

?>
于 2013-04-13T16:07:22.563 回答
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 "";
}
?>

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

于 2013-04-13T16:09:05.930 回答