2017-08-24 32 views
2

我試圖爲應用程序實現搜索建議,並且需要搜索包含用戶列表的數據庫表。我需要腳本返回一個包含符合條件的所有用戶的詳細信息的數組(即,如果用戶搜索'Jo',它將返回名爲'John''Joe'的用戶等)。我已經使用部分其他腳本執行此操作,但我無法使mysqli_fetch_array方法正常工作。從選擇查詢返回結果數組php

我使用onTextChangedListener來查詢每次用戶輸入內容時的腳本,我相信這是正確的做法。我會在下面發佈我的代碼,如果有任何更多的信息需要讓我知道。

$con = mysqli_connect(database details); 

$name = $_POST["name"]; 

$statement = mysqli_prepare($con, "SELECT user_id, name, email FROM users WHERE name = ?"); 
mysqli_stmt_bind_param($statement, "s", $name); 
mysqli_stmt_execute($statement); 
mysqli_stmt_store_result($statement); 
mysqli_stmt_bind_result($statement, $user_id, $name, $email); 


$response = mysqli_fetch_array($statement, MYSQLI_ASSOC); 

echo json_encode($response); 

mysqli_close($con); 

在android studio中我收到錯誤:mysqli_fetch_array() expects parameter 1 to be mysqli_result

+1

注:面向對象的接口,以'mysqli'是顯著少冗長,使代碼更容易閱讀和審覈,並且不是容易混淆過時的'mysql_query'接口。在你過於投入程序風格之前,它是值得轉換的。例如:'$ db = new mysqli(...)'和'$ db-> prepare(「...」)過程接口是PHP4時代的一個神器,當引入mysqli API時,不應該在新的代碼 – tadman

+0

JSteward你檢查了答案嗎? –

回答

1

嘗試changint用於下面的循環的mysqli_fetch數組:

while (mysqli_stmt_fetch($statement)) { 
    $response[] = [ 
     "user_id" => $user_id, 
     "name" => $name, 
     "email" => $email, 
    ]; //assign each data to response array 
}