2016-05-20 20 views
1

結果が見つかるかどうかによって、$case_numに値を設定し、jsonを使用してAJAXコールに戻すために配列に格納します。私が使用しているコードは、エントリが見つかった場合には期待通りに機能しますが、結果がない場合は返された値は単にnullになります。空の結果を検出できません

$sql = "SELECT * FROM cases WHERE name LIKE '%$serial%' 
     AND DATE(date_entered) = CURDATE()"; 

$result_case = mysqli_query($mysqli,$sql) or die(mysqli_error($mysqli)); 
$row = mysqli_fetch_array($result_case); 

if(!empty($result_case)){ 
     $case_id = $row['id']; 
     $case_num = $row['name']; 
    }else{ 
     $case_num = 'not found'; 
} 

$output_array = array(
    'source' => $source, 
    'case_found' => $case_num 
); 

echo json_encode($output_array); 
+0

結果がない場合、$ case_numには何を設定しますか? –

+3

'$ result_case'は決して空ではありません、__NEVER__。 –

答えて

2

あなたのif条件

if($row) 

をフェッチする行がありません場合mysqli_fetch_arrayNULLを返し、mysqli_queryは、クエリが(生成されたエラーなしの場合のように)成功した​​場合に基づいて、ブール値を返すことに注意してください変更する必要があります

+0

扱いました、ありがとう – tatty27

1

$ result_case are not null結果がない場合は、like(isset($ row))や$ result_case!= falseを使用してみてください。

+0

'$ row'は関係なく設定されます。だから 'isset($ row)'は​​役に立たないテストです – Machavity