我有一个查询两个字段的简单查询。第一个字段是日期,第二个字段是与该日期相关的代码。我试图开发一个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);
}
}
}
答案 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。