我目前正在搜索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 2013-05-03 06:39:54
var_dump($ result);打印? – Fabio 2013-05-03 06:42:29
@fardjad在代碼中他使用mysql擴展的地方在哪裏? – 2013-05-03 06:53:19