В настоящее время я ищу базу данных MySQL для получения результатов на основе входного значения. Как только данные были вытащены, они включаются в массив и кодируются JSON.PHP - массив базы данных для JSON
В настоящий момент код работает так, как ожидалось, однако он не проходит через каждый результат базы данных, он просто извлекает первые результаты, содержащие входные данные, даже если есть несколько результатов, которые соответствуют.
Например. если я введу букву «e» в форму поиска в конце, это должно получить все результаты, содержащие букву «e», однако она получает первый результат с буквой «e», а не зацикливается через таблицу ввода (там 3 других результата, которые следует вытащить).
Есть ли способ изменить текущий код для правильного цикла и получить все результаты, соответствующие запросу?
$search_string = preg_replace("/[^A-Za-z0-9]/", " ", $_POST['query']);
$search_string = $search_db->real_escape_string($search_string);
if (strlen($search_string) >= 1 && $search_string !== ' ') {
$query = 'SELECT kbarticleid,subject FROM swkbarticles WHERE subject LIKE "%'.$search_string.'%"';
$initial = $search_db->query($query);
while($results = $initial->fetch_array()) {
$result_array['kbarticleid'] = $results['kbarticleid'];
$result_array['subject'] = $results['subject'];
}
$match = $result_array['kbarticleid'];
$queryf = "SELECT * FROM swkbarticlelinks WHERE kbarticleid = '$match'";
$final = $search_db->query($queryf);
while($results2 = $final->fetch_array()) {
$result_array['linktype'] = $results2['linktype'];
}
echo json_encode($result_array);
}
Есть 2 запроса к базе данных, так как мне нужно пробежать 2 разных таблицы.
Расширение PHP mysql теперь устарело, рассмотрите использование ** PDO_MYSQL ** или ** MYSQLi **. – fardjad
Что делает var_dump ($ result); Распечатать? – Fabio
@fardjad Где в коде он использует расширение mysql? –