2013-04-13 44 views
0

您好我的表中有几列,如果任何一列是空的,它应该计为1 ...同时如果2列或更多列空同一行......它不应该算作2 ... 帮我MySQL查询.....计数行如果任何一个字段在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为同一行

+0

欢迎来到堆栈溢出! [**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护[并被正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 –

回答

0

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

做一个变量名为空,并给它值0然后在你的for循环补充一点:

if(isempty($a)||isempty($b)||isempty($c)||isempty($d)||isempty($e)||isempty($f)) 
    $empty++; 
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; 

?> 
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 ""; 
} 
?> 

但是请让我知道,如果代码有效。 :)

相关问题