Je suis actuellement à la recherche d'une base de données MySQL pour les résultats basés sur une valeur d'entrée. Une fois les données extraites, elles sont incluses dans un tableau et encodées en JSON. À l'heure actuelle, le code fonctionne comme prévu, mais il ne parcourt pas tous les résultats de la base de données. Il tire simplement les premiers résultats contenant les données d'entrée, même si plusieurs résultats correspondent.PHP - Database Array to JSON
Par exemple. si je saisis la lettre "e" dans le formulaire de recherche, tous les résultats contenant la lettre "e" doivent être récupérés, mais le premier résultat est obtenu avec la lettre "e" plutôt que la boucle sont 3 autres résultats qui devraient être tirés).
Y at-il un moyen de modifier mon code actuel pour boucler correctement et obtenir tous les résultats qui correspondent à la requête?
$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);
}
Il y a 2 requêtes de base de données car je dois parcourir 2 tables différentes.
L'extension PHP mysql est maintenant obsolète, pensez à utiliser ** PDO_MYSQL ** ou ** MYSQLi **. – fardjad
Que fait var_dump ($ result); impression? – Fabio
@fardjad Où dans le code il utilise l'extension mysql? –