2013-04-13 100 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 ""; 
} 
?> 

但是請讓我知道,如果代碼有效。 :)

相關問題