如果语句里面的循环没有给出准确的结果。 PHP MYSQL查询

时间:2015-02-02 17:56:56

标签: php mysql

我有一个查询两个字段的简单查询。第一个字段是日期,第二个字段是与该日期相关的代码。我试图开发一个IF语句,查看代码并确定其DOT或NO DOT。我遇到的问题是代码正在跳过IF语句,即使它是真的。我知道事实'PO'是该特定代码的名称。任何建议都会很棒。这是代码:

if ($row_count1 < 9 and $row_count2 < 12 ){
  $pdf->SetFont('Arial',b,14);
  $pdf->SetXY(66,165);
  $pdf->Cell(70,5,"Drug / Alcohol Information ",0);

  $pdf->SetFont('Arial',B,8);
  $pdf->SetXY(49,172);
  $sql6 = ("SELECT ua_detail,da_code
            FROM ua_detail WHERE ua_detail.driver_code = '$searchTerm'" );
  $result=mysql_query($sql6)or die ('query did not run');
  $row_count = mysql_num_rows( $result );
  while( $row = mysql_fetch_array( $result))
  { 
    if ($row[0] > 0 ){      
      $ddate =  substr($row['ua_detail'],0,2).$slash.substr($row['ua_detail'],2,2).$slash.substr($row['ua_detail'],4,4);
      $code =  $row ['da_code'];    
      if ( $code == 'PO'){
        $DOT = "DOT Positive";
      } 
      else if ( $code != 'PO') {
        $DOT = "Non DOT Positive";
      } 
      $pdf->Cell(70,3,"Date Of Failure:"."  ".$ddate.   "        Test Code : "  . $code.    "      DOT / NON DOT: "     .$DOT,0);
    }
    else{
      $pdf->SetFont('Arial',B,10);
      $pdf->SetXY(68,172);
      $pdf->Cell(70,5,"No Failed or refused UA on record",0);
    }
  }
}

1 个答案:

答案 0 :(得分:0)

如果这段代码

$code =  $row ['da_code'];    
if ( $code == 'PO'){
  $DOT = "DOT Positive";
} 
else if ( $code != 'PO') {
  $DOT = "Non DOT Positive";
} 

总是导致“Non DOT Positive”,然后$ code不等于“PO”。您需要查看$ code的值才能确定。记住PHP是区分大小写的,意思是“po”与“PO”不同。另外,检查空格。检查空白区域的一种方法是使用类似

的引号回显$ code
 echo '"' . $code . '"';

如果您没有看到空格,请通过查看源代码确保没有换行符。如果您在不同的行上看到结尾引用,那么您将知道$code中的换行符。

此外,您的else if语句是减少的。你可以把它写成别的

$code =  $row ['da_code'];    
if ( $code == 'PO'){
  $DOT = "DOT Positive";
} 
else{
  $DOT = "Non DOT Positive";
}

最后,不要使用mysql_ *函数。它们已被弃用。你应该使用PDO或mysqli。