2016-05-20 4 views
1

В зависимости от того, найдены ли какие-либо результаты или нет, я хочу установить значение $case_num и сохранить его в массиве, чтобы передать вызов AJAX с использованием json. Код, который я использую, работает как ожидалось, если запись найдена, но если нет результатов, то переданное значение просто равно 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_array вернется NULL, если нет ни одной строки для извлечения и mysqli_query возвращает логическое значение, основываясь на, если запрос успешно (как не генерируются без ошибок)

+0

работал с удовольствием, спасибо – tatty27

1

$ result_case arent null, если нет результата, значение равно false, вы можете попробовать использовать как (isset ($ row)) или $ result_case! = False

+0

'$ row' будет установлен независимо. Поэтому 'isset ($ row)' является бесполезным тестом – Machavity

Смежные вопросы